59

次の git コマンドの違いは何ですか?

  1. git diff HEAD
  2. git diff HEAD^
  3. git diff --cachedまたは同義語git diff --staged
  4. git diff
4

5 に答える 5

126
  1. git diff HEAD - 最後のコミット以降に何が変更されたかを表示します。
  2. git diff HEAD^-最新のコミットののコミット以降に何が変更されたかを示します。
  3. git diff --cached- インデックスに追加されたgit addがまだコミットされていないものを表示します。
  4. git diff- 変更されたが、まだインデックスに追加されていないものを表示しgit addます。

次のようになります。

     Working
    Directory  <----+--------+------+
        |           |        |      |    
        |           |        |      |
        V           |        |      |    
    "git add"       |        |      |    
        |         diff       |      |    
        |           |        |      |    
        V           |        |      |    
     Index     <----+    diff HEAD  |            
        |           |        |      |       
        |           |        |      |
        V           |        |      |       
  "git commit"      |        |      |
        |     diff --cached  |      |
        |     diff --staged  |      |
        V           |        |      |
      HEAD     <----+--------+      |
        |                           |
        |                        diff HEAD^
        V                           |
previous "git commit"               |
        |                           |
        |                           |
        V                           |
      HEAD^    <--------------------+
于 2010-09-10T16:42:52.150 に答える
11

Git Community Bookから:

git diff

次のコミットのためにまだステージングされていない作業ディレクトリの変更が表示されます。

git diff --cached

インデックスと最後のコミットの違いが表示されます。「-a」オプションなしで「gitcommit」を実行した場合にコミットする内容。

git diff HEAD

最後のコミット以降の作業ディレクトリの変更を表示します。「gitcommit-a」を実行した場合にコミットする内容。

于 2010-09-10T16:45:20.987 に答える
11
  1. git diff HEAD: HEAD と作業ディレクトリの違い。
  2. git diff HEAD^: HEAD の直接の祖先と作業ディレクトリの違い。
  3. git diff --cachedまたは同義語git diff --staged: HEAD とインデックスの違い。
  4. git diff: インデックスと作業ディレクトリの違い。
于 2010-09-10T16:42:07.360 に答える
0

HEADはツリー内の現在のHEADポインタ、HEAD^は前のコミットHEADです。--cachedよくわかりません。--cached行ったがインデックスに追加していない変更が表示されます。

kernal.orgのgit チュートリアルは非常に参考になります。

于 2010-09-10T16:38:10.333 に答える