web-dev-qa-db-ja.com

gitで着信コミットを確認するにはどうすればよいですか?

可能性のある複製:
Gitを使用して、ローカルとリモートの間で変更されたファイルを見つける方法

Gitで着信コミットを確認するにはどうすればよいですか?またはさらに良い、私はただ_git fetch/git pulled?

編集:質問を明確にするために:誰かが私に、いくつかの修正を得るために、リポジトリからプルする必要があると言います。私の目標は、それらの変更が何であるかを確認することですbefore私はそれらを受け入れます。 git pullは自動的にマージされますが、これは私が望むものではありません。 git fetchはマージせずにそれらを取得しますが、実際に何を引き込んだのかを表示する方法がわかりません。元のフレージングの理由は、通常はコマンドがhg incoming <repo name here> — gitにアナログがないと思われるコマンド。

155

incomingは、gitでの直接的なマッピングではありません。複数のレポジトリを取得でき、各レポには複数のブランチがあるためです(そして、私はよくそうします)。

Hgの着信コマンドに相当するものがある場合、おそらく次のようになります。

git fetch && git log ..Origin/master

つまり、「アップストリームからすべてのものを取得してから、現在のブランチをアップストリームマスターブランチと比較します。」

同様に、発信は次のようになります。

git fetch && git log Origin/master..

実際には、多くのローカルブランチを追跡し、多くのリモートブランチで追跡するのは簡単であり、それらをまとめるのに問題はないため、手動で入力します(そのうちの1つのエイリアスを作成しましたが)。

178
Dustin

git whatchanged これは、ある範囲のコミットで行われた変更の概要を提供します。

プルしようとしているものを確認したい場合は、git fetch最初に、リモートリポジトリのローカルトラッキングブランチのみを更新し(yourブランチのいずれも更新しない)、次に、プルしようとしている新しいコミット。例えば:

git whatchanged ..Origin

これは、「現在の場所の共通の祖先」と「Origin」の間のコミットメントを示すための略記です。

85
Greg Hewgill

2つのリポジトリの違いを調べることができます。ローカルブランチ 'master'とリモートトラッキングブランチ 'Origin/master'があり、他の人がコードをコミットしていると仮定すると、2つのブランチの違いについて異なる統計を取得できます。

git diff --summary master Origin/master

git diff --stat master Origin/master

git diff --numstat master Origin/master

git diff --dirstat master Origin/master

git diff --shortstat master Origin/master

git diff --name-only master Origin/master

git diff master Origin/master
11
Netzpirat

誰かにプルするように言われると、リポジトリURLとブランチ(デフォルトはmaster)が渡されます。

ただやる

git fetch URL branch

1つ(優先順位の降順):

# note 3 dots in next 3 commands
gitk HEAD...FETCH_HEAD
    # shows all commits on both sides since the "fork" point
gitk --cherry-pick HEAD...FETCH_HEAD
    # as above but skips identical patches so you really see the differences
git log --graph --boundary --left-right --cherry-pick --decorate HEAD...FETCH_HEAD
    # I have a Nice alias for this; it's the text mode eqvt of the above

私は時々「tig」も使用しますが、この特定のユースケース(both Sidesを参照)はtigによってうまく処理されません。

ただし、それを2つのドット(実際の質問とより厳密に一致する場合がありますが、私は3つのドットバージョンを好む場合があります)に下げると、次のことができます。

tig HEAD..FETCH_HEAD

便宜上、エイリアスは次のとおりです。

incoming = !sh -c 'git fetch && git log --graph --boundary --left-right --cherry-pick --decorate HEAD..FETCH_HEAD'
outgoing = !sh -c 'git fetch && git log --graph --boundary --left-right --cherry-pick --decorate FETCH_HEAD..HEAD'
6
Sitaram

「着信コミット」ユーザーがローカルにコミットしてプッシュするようなものはありません。 gitxまたはgitk(gitに付属)を開いて、リポジトリがどのように見えるかを確認します。

つかいます: gitk --all 見る。

1
JP Silvashy

この投稿をご覧ください。 gitバージョン1.7で導入された新機能の使用方法を示しています Gitを使用して、ローカルとリモート間の変更を見つける方法

0
prosieges