gitの便利な機能
gitでは、バージョン管理を効率的にかつ効果的に行うための様々な機能があります。コマンドを実行して結果を確認しながら少しずつ操作に慣れていきましょう。
ファイルの差分を確認しよう
ファイルの修正前と修正後の違いを差分と呼びます。差分を見て修正が正しく更新されているかを確認しましょう。修正対応の中でうっかりタイプミスで意図しない更新がある場合も考えられます。問題が起こった場合は差分を比較すると原因を見つかりやすくなるかもしれません。
①ワークツリーとステージングエリアの比較
1 |
git diff |
②ステージングエリアとgitディレクトリ(直近のコミット)との比較
1 |
git diff --cached |
Git管理下のファイルを削除
Git管理されているディレクトリ内のファイルをOSの機能を使って削除しただけでは不十分です。削除したあとでステージングエリアに登録して(git add)コミットする必要があります。
gitでは、「git rm」コマンドを使うとファイルを削除してステージング領域の更新も行います。
1 |
git rm deleteFile |
但し、「git rm」のあとにコミット処理は、必要です。
操作の取り消し①
不要な変更・修正でファイルを保存した後で更新前の状態に戻したい(ワークツリーでの処理)場合
ファイルの修正を戻したい
1 |
git checkout -- fileName |
ディレクトリ内の修正を戻したい
1 |
git checkout -- dirctoryName |
全ての修正を戻したい
1 |
git checkout . |
※ファイルを新規作成した時とファイル名の変更は戻りません
「git add」でステージングエリアに上げたあとに取りやめたい場合
ファイルの取りやめ
1 |
git reset HEAD fileName |
ディレクトリの取りやめ
1 |
git reset HEAD dirctoryName |
全部とりやめ
1 |
git reset HEAD . |
コミットのやり直し(コメントの変更や、やり残したことに気づいた場合)
コミットを上書きする(pushの後は禁止)
1 |
git commit --amend |
直前のコミットをなかった事にする
1 |
git reset --hard HEAD^ |
操作の取り消し②
少し新しめの機能
ワーキングディレクトリの更新を戻す
1 |
git restore <ファイル名> |
ステージングの変更を取り消す
1 |
git restore --staged file |
直前のcommitの取り消し(ステージングに戻す)
1 |
git reset --soft HEAD~ |
直前のcommitの全部取り消し(WorkTreeも戻る)
1 |
git reset --hard HEAD~ |
コミットの履歴
コミットの履歴を出力します。
1 |
git log |
コミットの履歴を差分付きで出力します。
1 |
git log -p |
gitの追跡除外
.gitignore ファイルにはgitの追跡を除外するファイルを記述します。
例えば、個人の情報を含むファイルやアカウント情報などをgitの追跡から外したい場合にこのファイルに追加します。
Macでは、「.DS_Store」が自動で生成されますがこういった不要ファイルもGitで追跡させたくない場合があります。