2017-10-06 13 views
2

私は最後にレビューしてから変更を見ることができますが、その間に起こったマスターの変更は無視したいと思います。rebaseの前後でGit diffブランチをマスターの変更を無視します

 F - G  H - I 
    /  /
A - B - C - D - E 

私は(E - Iによって表される)の範囲c3af8fc5..7ccc4b49B - Gによって表される)と4dfdabdd..301a443cを2コミットしています。


は、あなたの同僚のためにコードレビューをやっている、想像し、ローカルに自分のブランチをチェックアウトして、あなたのHEADは今Gを指しています。あなたはコードレビューを行い、他のものに移ります。

時間がたつと、新しいコミットがマスター(CDE)に表示され、あなたの同僚がレビューからのコメントを解決しました。彼はFGに変更しました。なぜなら彼はFに導入されたメソッドの名前を変更し、その使用をGに修正したからです。彼はまた、すべての作品を確認するために、マスターに支店をrebased。

もう一度コードレビューを行いたいが、ブランチ全体のコードレビューをやり直すのは怠惰だから、前回の変更内容だけを見たいと思う。あなたはまだ古いrefsをローカルに取得しています。職業はなんですか?

あなたはgit-diff G Iのようなことをすることができますが、マスターに変更された内容が表示されますが、これはまったく役に立たないものです。

また、現在のマスターで古いリファレンスをリベースしてからそれらをdiffすることもできます。それは助けになるかもしれませんが、枝全体をもう一度見直すだけの矛盾もあります。


私はdiffing patches

diff <(git-diff c3af8fc5...7ccc4b49) <(git-diff 4dfdabdd...301a443c) 

を試してみた、それは私がどこかに私の注意を向けることができますが、それは非常に、粗です。

あなたはこの問題を解決するためにより良い、ネイティブな方法を知っていますか?ありがとう。 ?


編集: - そう...もっと良いものがある

interdiff <(git-diff -U100 c3af8fc5...7ccc4b49) <(git-diff -U100 4dfdabdd...301a443c) | colordiff 

非常に良く2つの差分を差分のなりますが、それでも、それはGitが提供するかもしれない状況に欠けている私がきただけ discovered interdiff

+0

Gitは2つのだけのコミットの間の差分を表示することができます。あなたがdiffの相違が欲しいと思うように聞こえるので、Gitができることではありません。 – poke

+0

私は知っているが、gitは変更のコンテキストを持っている、それは何とか巧みに2つのdiffのdiffを生成することができます。 –

+0

しかし、それはどのように見えるでしょうか?私はそれを視覚的に考えることさえできません。 – poke

答えて

2

最も簡単な方法は次のようになります。視覚的に2人の差分視聴者まで

火差分を比較し、あなたがリベースリビジョンから来ているものを見たいときに、2つのビューを比較:

# view the "old" patch : 
git difftool -d B G 

# view the "new" patch : 
git difftool -d H I 

変更されたファイルのみに焦点を当てることができます:

git diff --name-only B G 

edはBとGの間でファイル

することはできたとえば使用してターゲットにのみ変更されたファイル:

# compare G and I, 
# looking only at files modified between B and G, or between E and I : 
git difftool -d G I -- $(
    git diff --name-only B G; git diff --name-only E I 
) 

あなたはまた、それはdoesnの場合は、ローカルマシン上のEの上にB..Gをリベースしてみてくださいtはあまりにも多くの紛争をトリガして、差分を見て:

git checkout G 

# as an option, you can make a temporary branch : 
git checkout -b wip/G 

# rebase on the tip of 'master' : 
git rebase E 

# look at the diff between "rebased G" and I 
git difftool -d wip/G I 
関連する問題