c-bata web

@c_bata_ のメモ。python多め

git勉強内容まとめ4(ソースコードの状態をコマンドで確認する)

今回でgitについて4つ目の記事です。

前回までは,初期設定,コミットまでの手順,ログの確認方法を勉強してきました。
今回は現在の状態を確認する方法について勉強します。

git statusコマンド

まずは管理対象のソースコードに,なにか変更を加えてみます。 今回は,index.htmlの中身を下のように書き換えます。

line 1

↓↓↓

line 1
line 2


変更内容をステージングエリアに送るなら,git addコマンドを実行するのですが,今回はここでgit statusコマンドを実行してみます。

$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   index.html
#
no changes added to commit (use "git add" and/or "git commit -a")

↑の実行結果を見ると,modified: index.htmlからindex.htmlが変更されていることが確認できます。 しかし,出力2行目の# Changes not staged for commit:から,ステージにも来てないし,コミットにも来ていないことが分かります。
さらに出力3,4行目では,commitするならgit add ファイル名,変更前の状態に戻すならgit checkout -- ファイル名と入力すればいいことを教えてくれています。

git statusコマンドは,とても丁寧に現在の状態を教えてくれるので覚えておくほうがよさそうです。


git diffコマンド

git diffコマンドも,statusコマンドと同じようにソースコードの状態を確認するためのものですが、こちらはより具体的にどこが変更されているのかまで確認することができるようです。

$ git diff
diff --git a/index.html b/index.html
index d241ff8..f381aa8 100644
--- a/index.html
+++ b/index.html
@@ -1,2 +1,3 @@
 line 1
+line2 
 

上のget diffコマンド結果から,index.htmlの2行目にline 2が追加されていることが確認できます。


git diffコマンドのcachedオプション

上に示したgit status,git diffコマンドは,ステージングエリアに上げていないものに対しては使えるのですが,一旦ステージングエリアに上げてしまうと,ちょっと違った動作をします。 例えば下のようにindex.htmlをgit addコマンドで,一度ステージングエリアに送るとgit diffコマンドにはcachedオプションを付けなければなりません。

$ git add index.html
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   index.html
#

$ git diff --cached
diff --git a/index.html b/index.html
index d241ff8..f381aa8 100644
--- a/index.html
+++ b/index.html
@@ -1,2 +1,3 @@
 line 1
+line2 
 


今日の内容でソースコードの状態を確認する事ができるようになりました。

今日の内容はどれも大切そうです。


参考ページ ドットインストールgit入門