バージョン管理システムとしてよく利用されるGit。
とても便利で考えた人すごいなと思いながら現場や個人的な場で利用していますが、ちゃんと使い方を理解できていなかったので、まとめていきたいと思います。
前回はリポジトリの作成までだったので今回はコミットまでをまとめます。
コミットとは
コミット(commit)とはGitリポジトリ内のファイルやフォルダの変更(新規作成・更新・削除)をリポジトリに記録することです。
コミットによってリポジトリの状態を記録していくことによってバグが発生した時などに過去の状態に戻すことや、変更を分岐させることなどの機能を可能としています。
コミットまでの手順
コミットまでの手順の大まかな流れとしては以下のようになります。
①リポジトリのファイルを編集する
②git add
コマンドでファイルをステージングする
③git commit
コマンドでステージングしたフィアルをコミットする
Gitではファイルを編集してコミットする前に、一度コミット対象のファイルを指定する必要があります。
この作業をステージングするといい、手順②にあたります。
①リポジトリのファイルを編集する。
git init
コマンドで作成したリポジトリにファイルやフォルダを作成していきましょう。
Gitリポジトリには”.git”というフォルダが存在します。
こちらにファイルやフォルダを作成していきましょう。
今回の例ではこのようなフォルダ構成を作成しました。
/gitrepo
├dir01
│ └file02.txt
└file01.txt
この状態でgit status
コマンドを実行してみましょう。
“Untracked files”とある下に赤字で先ほど作成したファイルやフォルダが記載されています。
こちらは追跡されていないファイルという意味であり、リポジトリの管理下にないファイルがある場合にこのように表示されます。git status
コマンドは上記のようにリポジトリ内の状態を表示してくれるコマンドです。
②git addコマンドでファイルをステージングする
git add
コマンドでコミットするファイルをステージングします。git add ファイル名
と打つことで指定したファイルをステージングすることができます。
git status
コマンドを実行してみると先ほどと表示が変わっています。
“Changes to be committed”という表示が増え、ステージングを行ったファイルが緑の字で表示されています。
これはfile01.txtがステージングされている状態を表しており、これでコミットが行えるようになります。
③git commitコマンドでステージングしたファイルをコミットする
git commit
コマンドでコミットをします。
コミットする際はそれがどのような変更を行ったものなのかなどを後から見返せるようにコミットメッセージを付けます。git commit -m "コミットメッセージ"
というコマンドでコミットメッセージを付けたコミットが実行できます。
画像のように”1 file changed〜”と表示されていればコミット成功しています。(画像内ではコミットメッセージの指定で余計な改行を6回してしまいわかりづらくなってしまいました。。)
コマンドを実行後、git status
で状態を確認してみましょう。
コミットしたため、file01.txtの表示がなくなっています。
複数ファイルを一括でステージングするgit addコマンド
上記の3ステップでコミットは完了しました。
ただ、上記の方法では複数のファイルを一気にコミットしたい場合、git add
コマンドをファイル数回行う必要があり大変ですね。
なのでgit add
コマンドにはファイルを一括でステージングする方法が用意されています。
ワイルドカードによるファイル名指定
git add ファイル名
のファイル名指定にはワイルドカードが使えます。
$ git add *.txt
このように指定すると.txtで終わるファイルを全て一括でステージングできます。
-a(-ALL)オプションによる一括ステージング
git add
コマンドのオプションの一つである-a
を利用すると新規作成されたものも含めて、リポジトリ内の全てのファイルをステージング可能です。
また、リポジトリ内のどのディレクトリから実行してもリポジトリ内全体を一括でステージングします。
全てを一括でステージングできる便利なコマンドですが、コミットしたくないファイルも一緒にステージングされてしまうので注意が必要です。
git add -a
-u(-UPDATE)オプションによる一括ステージング
-u
オプションを利用するとリポジトリで管理されている変更があったファイルを一括でステージングを行うことができます。
新規追加されてバージョン管理されていないファイルはステージングされません。
git add -u
.(カレントディレクトリを表す)による一括ステージング
git add .
でファイル名の部分にカレントディレクトリを表す.
を指定することで、カレントディレクトリ内の全てのファイルをステージングすることができます。
こちらは-a
オプションと同じように新規追加されたファイルも含めた全てのファイルをステージングできますが、-a
オプションと違いカレントディレクトリ配下にないファイルのステージングは行いません。
git add .
まとめ
Gitのコミットまでの手順をまとめました。
大まかな流れは最初に記述した通り、ファイル変更→ステージング→コミットとなります。
コミットが実施されるまではGit上にファイルの状態が記録されることはないのでしっかりと手順を把握し、正確にバージョン管理を行えるようにしましょう。
ここまで読んでくださり、ありがとうございました。
それでは、また。