137

Gitプル後、その出力は変更量の概要を示します。

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

さて、これがJefromiへの私の質問です:

  1. マスターに引っ張っていたかどうかはどうすればわかりますか?私がしたのは「gitpull」だけです。

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

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

  4. git pull最後の要約出力の変化をもう一度確認するにはどうすればよいですか?

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

4

4 に答える 4

216

マスターに引っ張っているとします。masterbyの前の位置を参照することができますmaster@{1}(または; git-rev-parseのマニュアルページmaster@{10.minutes.ago}のリビジョンの指定のセクションを参照してください)。

  • すべての変更を確認してください。git diff master@{1} master

  • 特定のファイルへの変更を確認します。git diff master@{1} master <file>

  • 特定のディレクトリ内のすべての変更を確認します。git diff master@{1} master <dir>

  • 変更の概要をもう一度参照してください。git diff --stat master@{1} master

「マスターにいるかどうかをどうやって知るか」という質問については、ブランチを使用することはGitワークフローの重要な部分です。自分がどのブランチにいるのかを常に知っておく必要があります。変更をプルした場合は、それらを正しいブランチにプルする必要があります。コマンドを使用すると、現在チェックアウトされているブランチの横にアスタリスクが付いた、すべてのブランチのリストを表示できますgit branch。現在のブランチ名も、の出力とともに出力されますgit status。使用するコマンドのマニュアルページをざっと読むことを強くお勧めします。これは、知識をゆっくりと習得するための優れた方法です。

そして最後の質問:HEAD現在チェックアウトされているブランチの名前です。確かHEADHEAD@{1}、このコンテキストでも使用できますが、別のブランチにアクセスしてチェックアウトする場合は、ブランチを使用する方が少し堅牢です。HEAD今ではその2番目のブランチであり、HEAD@{1}今はmaster-あなたが望むものではありません!

このような小さな質問をたくさんする手間を省くために、おそらくGitチュートリアルを見る必要があります。たとえば、Webには100万があります。

  • ProGitの本
  • Git Magic
  • そして「Gitチュートリアル」のためのGoogleの450万ヒット
于 2009-09-01T15:09:03.120 に答える
53

次のようにgitpullを実行するとします。

$ 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 git@dev.example.com: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
于 2009-09-01T15:12:23.413 に答える
6

1.マスターに引っ張っていたかどうかはどうすればわかりますか?私がしたのは「gitpull」だけです。

コマンド自体は次のように機能します。

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

デフォルトでは、現在のブランチを指します。を使用してブランチを確認できます

git branch -a

これにより、たとえば、ローカルブランチとリモートブランチが一覧表示されます(--- より明確にするために、ローカルブランチとリモートブランチの間にaを追加しました)

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

次に、1つのリモートリポジトリを見ると、参照しているものがわかります。

git remote show origin

次のように一覧表示されます。

* remote origin
  Fetch URL: ssh://git@git.example.com:12345/username/somerepo.git
  Push  URL: ssh://git@git.example.com: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)

したがって、どこから引っ張ってどこにプッシュするかを確認するのは非常に簡単です。

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

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

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

git diff --stat master@{1}..master --dirstat=cumulative,files

これにより、最後のプルと現在の作業状態の間の変更に関する2つのブロックの情報が得られます。出力例(わかりやすくするために、と出力--- の間に分周器としてを追加しました):--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/
于 2014-09-18T23:43:03.793 に答える
2

gitkこの方法は一種のハッキーですが、またはgitgまたはのようなグラフィカルツールを使用できるようになりますgit-gui

git pull
git reset HEAD@{1}
gitg (or gitk or whatever tool you like)

賛成票が最も多い回答は、gitツールを使用する最良の方法ですが、GUIでツールを使用して変更を確認できるため、この方法を使用します:P

git checkout .次に、を実行してから再度実行するという追加の手順があり、git pull適切にプルしてマージしますが、追加の2つの手順を処理するのに十分なGUIの違いを調べる機能を高く評価しています。

于 2014-03-05T22:22:55.120 に答える