Hatena::Groupmotememo

やる夫で学ぶ gitcore-tutorial/Inspecting changes

やる夫で学ぶ gitcore-tutorial/Inspecting changes


           /.:.:.         \
              /:,:.:.:  /   ヽ    \
          /.:.l:.:.:/:/   :/  ', :l   ヾ`ー
            /!:.:.|:.: l/  〃 / j } :|    ハ
        /イ:.:.i|:.:.jL∠/_/ | /l.ム_/| l  l }
         N:.ハ:.:.:lィfアト/ レ ィ=ト | /| ∧j  
          ヽム:.} ii;_j    ii;リ ル iレヽ.   diff シリーズにはもう一つ git-diff-tree というコマンドがある
                `ヘ:ゝ   _     小/     これはコミットされた tree 同士を比較する
                  ヾ:{>、 _ ィ<}/|/    
           _, ィr'´ヽ{ ___`} ヽ、_   
         /| l:|   | ===|   |:l゙ヽ   
          /  | l:l   l     l   l::l l
           l  ヽハ    l    l  //  |

       ____
     /      \
   / ─    ─ \
  /   (○)  (○)   \ まだあるのかお…
  |      (__人__)    |  正直覚えられないお…
  \     ` ⌒´     /
$ git diff-tree -p HEAD
bb8322210e30931a1d916b0d7d4dd24036ab6bbf
diff --git a/hello b/hello
index 557db03..263414f 100644
--- a/hello
+++ b/hello
@@ -1 +1,2 @@
 Hello World
+It's a new day for git
           /.:.:.         \
              /:,:.:.:  /   ヽ    \
          /.:.l:.:.:/:/   :/  ', :l   ヾ`ー
            /!:.:.|:.: l/  〃 / j } :|    ハ
        /イ:.:.i|:.:.jL∠/_/ | /l.ム_/| l  l }
         N:.ハ:.:.:lィfアト/ レ ィ=ト | /| ∧j  …HEAD, つまり最後のコミットとその親コミットでの
          ヽム:.} ii;_j    ii;リ ル iレヽ.   ツリーの diff が出力された
                `ヘ:ゝ   _     小/     
                  ヾ:{>、 _ ィ<}/|/    
           _, ィr'´ヽ{ ___`} ヽ、_   
         /| l:|   | ===|   |:l゙ヽ   
          /  | l:l   l     l   l::l l
           l  ヽハ    l    l  //  |


     , '´ ̄ ̄` ー-、     
   /   〃" `ヽ、 \    
  / /  ハ/     \ハヘ   
  |i │ l |リノ    `ヽ}_}ハ.  やる夫くんにもわかるように AA を拾ってきたよ!
  |i | 从 ●     ●l小N  
  |i (| ⊂⊃ 、_,、_, ⊂li|ノ  
  | i⌒ヽ j  (_.ノ   ノi|__/⌒) 
  | ヽ  ヽx>、 __, イl |::::ヽ/.
  | ∧__,ヘ}::ヘ三|:::::/l| |',:::::ハ  
  | ヾ_:::ッリ :::∨:/ | | >'''´
            diff-tree
             +----+
             |    |
             |    |
             V    V
          +-----------+
          | Object DB |
          |  Backing  |
          |   Store   |
          +-----------+
            ^    ^
            |    |
            |    |  diff-index --cached
            |    |
diff-index  |    V
            |  +-----------+
            |  |   Index   |
            |  |  "cache"  |
            |  +-----------+
            |    ^
            |    |
            |    |  diff-files
            |    |
            V    V
          +-----------+
          |  Working  |
          | Directory |
          +-----------+
      ___
    / ⌒  ⌒\
   / (⌒)  (⌒) \   
 /   ///(__人__)/// \  
 |   u.   `Y⌒y'´    |   ありがたいお!
  \       ゙ー ′  ,/   さっそく壁紙にしたお!!
  /⌒ヽ   ー‐    ィヽ    
  / rー'ゝ       〆ヽ
 /,ノヾ ,>      ヾ_ノ,|
 | ヽ〆        |´ |


     , '´ ̄ ̄` ー-、     
   /   〃" `ヽ、 \    
  / /  ハ/     \ハヘ   
  |i │ l |リノ    `ヽ}_}ハ.   git-diff-tree に --pretty オプションを渡すと
  |i | 从 ●     ●l小N    コミットメッセージも一緒に表示してくれるよ!
  |i (| ⊂⊃ 、_,、_, ⊂li|ノ    これをリビジョンのリストを表示してくれる git-rev-list を組み合わせると
  | i⌒ヽ j  (_.ノ   ノi|__/⌒) プロジェクトの変更履歴が見られて便利なのさ
  | ヽ  ヽx>、 __, イl |::::ヽ/.  git-whatchanged ってコマンドがそれをやってくれるんだよっ
  | ∧__,ヘ}::ヘ三|:::::/l| |',:::::ハ  
  | ヾ_:::ッリ :::∨:/ | | >'''´


       ____
     /      \
   /  _ノ  ヽ、_  \  難しすぎるお…
  /  o゚⌒   ⌒゚o  \  もっと簡単な方法を要求するお…
  |     (__人__)    |
  \     ` ⌒´     /


           /.:.:.         \
              /:,:.:.:  /   ヽ    \
          /.:.l:.:.:/:/   :/  ', :l   ヾ`ー
            /!:.:.|:.: l/  〃 / j } :|    ハ
        /イ:.:.i|:.:.jL∠/_/ | /l.ム_/| l  l }
         N:.ハ:.:.:lィfアト/ レ ィ=ト | /| ∧j  普段使う分には git-log で十分…
          ヽム:.} ii;_j    ii;リ ル iレヽ.   
                `ヘ:ゝ   _     小/     
                  ヾ:{>、 _ ィ<}/|/    
           _, ィr'´ヽ{ ___`} ヽ、_   
         /| l:|   | ===|   |:l゙ヽ   
          /  | l:l   l     l   l::l l
           l  ヽハ    l    l  //  |
$ git log
commit bb8322210e30931a1d916b0d7d4dd24036ab6bbf
Author: yaruo <yaruo@example.com>
Date:   Sat Jul 26 15:24:24 2008 +0900

    ⊂二二二( ^ω^)二⊃

commit 71e583b286465e8ec7b92d4b642dc77fee53562e
Author: yaruo <yaruo@example.com>
Date:   Sat Jul 26 13:02:42 2008 +0900

    Initial commit

       ____
     /⌒  ⌒\
   /( ●)  (●)\  コミットログが見れたお!
  /::::::⌒(__人__)⌒::::: \ 簡単だお!!
  |     |r┬-|     | 
  \      `ー'´     /



           /.:.:.         \
              /:,:.:.:  /   ヽ    \
          /.:.l:.:.:/:/   :/  ', :l   ヾ`ー
            /!:.:.|:.: l/  〃 / j } :|    ハ
        /イ:.:.i|:.:.jL∠/_/ | /l.ム_/| l  l }  低レベルなコマンドから解説しているけれど
         N:.ハ:.:.:lィfアト/ レ ィ=ト | /| ∧j   git-commit のようにだいたい簡単なコマンドが用意されている
          ヽム:.} ii;_j    ii;リ ル iレヽ.   
                `ヘ:ゝ   _     小/     例えば git-update-index --add は git-add で
                  ヾ:{>、 _ ィ<}/|/      git-update-index --remove は git-rm で代用できる
           _, ィr'´ヽ{ ___`} ヽ、_   
         /| l:|   | ===|   |:l゙ヽ   
          /  | l:l   l     l   l::l l
           l  ヽハ    l    l  //  |


       ____
     /⌒  ⌒\
   /( ●)  (●)\  git は低レベルなタンポポコマンドと
  /::::::⌒(__人__)⌒::::: \ 高レベルなゆとりコマンドで構成されてるってことかお!
  |     |r┬-|     | 
  \      `ー'´     /


     , '´ ̄ ̄` ー-、     
   /   〃" `ヽ、 \    
  / /  ハ/     \ハヘ   ゆとり乙!
  |i │ l |リノ    `ヽ}_}ハ.   次はタグの作成だよっ!
  |i | 从 ●     ●l小N   
  |i (| ⊂⊃ 、_,、_, ⊂li|ノ    
  | i⌒ヽ j  (_.ノ   ノi|__/⌒) 
  | ヽ  ヽx>、 __, イl |::::ヽ/. 
  | ∧__,ヘ}::ヘ三|:::::/l| |',:::::ハ  
  | ヾ_:::ッリ :::∨:/ | | >'''´

やる夫で学ぶ gitcore-tutorial/Tagging a version