2009-09-01 19 views
78

Gitプル後、その出力は変更量のサマリーを表示します。Git pull後の詳細変更

ファイルのそれぞれまたは一部の詳細な変更を確認するにはどうすればよいですか?

オーケーは、ここにJefromiに私の質問です:私はマスターし引っ張った場合

  1. どのように私は知っていますか?私がしたのは "git pull"だけです。

  2. マスターは何を指していますか、マスターとヘッドの違いは、Gitの2つのデフォルトヘッドですか?

  3. 特定のファイルの詳細な変更を確認するにはどうすればよいですか?

  4. 最後のgit pullによるサマリー出力の変更をもう一度確認するにはどうすればよいですか?

  5. git diffgit whatchangedの違いは何ですか?

+3

さて、これは正確にシステムが使用されることを意図している方法ではありません編集を経て、新しい質問を追加することを繰り返します。また、マニュアルページを見たり、試したりするだけで、たくさんの質問に簡単に答えることができます。たとえば、 'git diff'は明らかにdiffを出力し、' git whatchanged'は明らかにコミット情報のリストを出力します。それぞれは変更されたファイルのリストを含んでいます。 – Cascabel

+0

おそらくあなたの低所長のためです。 –

+0

@ T.E.D。コメントを残すのに50人、アップヴォートに15人しかいない。 – Cascabel

答えて

128

あなたがマスタになっているとします。あなたは[email protected]{1}によってmasterの前の位置を参照することができます(あるいは[email protected]{10.minutes.ago}; git-rev-parse man pageの指定リビジョンの項を参照してください)、あなたが行うことができるように

  • のようなものは、すべての変更を参照してください。git diff [email protected]{1} master

  • git diff [email protected]{1} master <dir>

    0123: git diff [email protected]{1} master <file>

  • が指定したディレクトリ内のすべての変更を参照してください:

  • は、与えられたファイルへの変更を参照してください。

  • 再び変更点の概要を参照してください:「私はマスターしている場合の方法を私は知っている」のご質問についてはgit diff --stat [email protected]{1} master

を...よく、枝を使用してGitのワークフローの重要な部分であります。あなたはあなたが何をしているのかを常に意識しておくべきです。もしあなたが変更を引っ張ってしまえば、それらを正しいブランチに引っ張りたいのです!現在チェックアウトされているアスタリスクで、すべてのブランチのリストが表示され、コマンドはgit branchとなります。現在のブランチ名は、出力ともにgit statusという名前で出力されます。私は非常にコマンドのマニュアルページをスキミングすることをお勧めします - それはゆっくりといくつかの知識を拾うための素晴らしい方法です。

最後の質問:HEADは、現在チェックアウトされているブランチの名前です。この文脈でも実際にHEAD[email protected]{1}を使用することができますが、別のブランチに行ってチェックアウトすると、そのブランチを使用するにはもう少し堅牢です。 HEADはその2番目のブランチになりました。[email protected]{1}masterになりました。

このような質問をほとんど省くために、おそらくGitチュートリアルを見てください。万人には、例えば、ウェブ上であります

+4

これは私の解決策より優れています:) –

+1

これはできますか? – Septagram

+1

私はこれが古いと知っていますが、それは逆です: 'git diff master @ {1} master'です。そうでなければ、変更は"後方に "表示されます、つまり挿入は削除などになります。 – ultracrepidarian

34

あなたはgitのプルを行うと言うためのGoogleで450万ヒット

$ git pull 
remote: Counting objects: 10, done. 
remote: Compressing objects: 100% (6/6), done. 
remote: Total 6 (delta 4), reused 0 (delta 0) 
Unpacking objects: 100% (6/6), done. 
From [email protected]:reponame 
    a407564..9f52bed branchname -> origin/branchname 
Updating a407564..9f52bed 
Fast forward 
.../folder/filename   | 209 ++++++++----- 
.../folder2/filename2  | 120 +++++++++++--------- 
2 files changed, 210 insertions(+), 119 deletions(-) 

リビジョン番号を使用すると、変更された内容が表示されます。

$ git diff a407564..9f52bed 
+4

そして、 "git diff --stat a407564..9f52bed'を使ってサマリーを得ることができます。" git diff --summary a407564..9f52bed' " –

+13

gitの新しいバージョンの場合、gitはもはや変更されたファイルのリストを出力します。それを得るには、 'git pull -stat 'を実行する必要があります。 – user10

2

ハックのこの道のようなもの、それはあなたがgitkまたはgitgまたはgit-guiのようなグラフィカルツールを使用することができます:

git pull 
git reset [email protected]{1} 
gitg (or gitk or whatever tool you like) 

最もupvotesとの答えはgitのを使用して最善の方法を提供しますツールを使用していますが、GUIを使用してツールを使用して変更を確認できるため、この方法を使用します:P

git checkout .を実行してからgit pull私が適切に引っ張ってマージすると、余分な2つのステップを処理するのに十分なGUIの違いを調べる価値があります。

5

私がマスターに引き込んでいるかどうかはどのようにわかりますか?私がしたのは "git pull"だけです。

git pull [options] [<repository> [<refspec>…]] 

を、デフォルトごとに現在のブランチを指し:

コマンド自体は次のように動作します。あなたはとき

*master 
foo 
bar 
baz 
--- 
origin/HEAD -> origin/master 
origin/deploy 
origin/foo 
origin/master 
origin/bar 
remote2/foo 
remote2/baz 

これは非常に(それがより明確にするために、ローカルとリモートの間の分圧器として ---を追加しました)などのためのような、ローカルおよびリモートブランチを一覧表示されます

git branch -a 

を使用して、枝を確認することができます

git remote show origin 

は次のように一覧表示されます:あなたは1つのリモートレポを見て、あなたが参照しているかを確認します

* remote origin 
    Fetch URL: ssh://[email protected]:12345/username/somerepo.git 
    Push URL: ssh://[email protected]:12345/username/somerepo.git 
    HEAD branch: master 
    Remote branches: 
    foo tracked 
    master tracked 
    Local refs configured for 'git push': 
    foo pushes to foo (up to date) 
    master pushes to master (fast-forwardable) 

どこから引っ張って押し込むのかは分かりやすいです。

特定のファイルの詳細変更を確認するにはどうすればよいですか?

4.最後のgit pullによるサマリー出力の変更を見てみる方法は?

最も簡単かつ最もエレガントな方法(IMO)は次のとおりです。

git diff --stat [email protected]{1}..master --dirstat=cumulative,files 

これは仕事の現在の状態を引き出し、あなたの最後の間の変化についてのあなたの情報の二つのブロックを与えます。出力例は、(私はそれがより明確にするために--stat--dirstat出力の間に分圧器として---を追加):

mu-plugins/media_att_count.php      | 0 
mu-plugins/phpinfo.php        | 0 
mu-plugins/template_debug.php      | 0 
themes/dev/archive.php        | 0 
themes/dev/category.php       | 42 ++++++++++++++++++ 
.../page_templates/foo_template.php    | 0 
themes/dev/style.css        | 0 
themes/dev/tag.php         | 44 +++++++++++++++++++ 
themes/dev/taxonomy-post_format.php    | 41 +++++++++++++++++ 
themes/dev/template_parts/bar_template.php   | 0 
themes/someproject/template_wrappers/loop_foo.php | 51 ++++++++++++++++++++++ 
--- 
11 files changed, 178 insertions(+) 
    71.3% themes/dev/ 
    28.6% themes/someproject/template_wrappers/ 
100.0% themes/ 
    27.2% mu-plugins/ 
    9.0% themes/dev/page_templates/ 
    9.0% themes/dev/template_parts/ 
    63.6% themes/dev/ 
    9.0% themes/someproject/template_wrappers/ 
    72.7% themes/ 
関連する問題