2016-10-25 5 views
1

私は支店にいますAと支店Bが先です。私はBの変更をAから確認したいのですが、git diff Bを実行すると、削除の追加が表示されます。逆の場合はBの変更をAの作業コピーに入れたい場合があります。 offshootブランチ)、git diff B > Bfileを実行しようとすると、git apply Bfileはちょうど一連のエラーを投げます。変わったgit diff動作

代わりにgit diff A..Bと入力してください(すでにAにあります)。正しい変更が表示されます。

なぜ、最初のコマンドが追加時に変更を削除として表示するのですか?私がもう一つのブランチで正確な変更をしたいときには、私がすでに行っているブランチをタイプアウトしなければならないのは、重複していると思われます。

答えて

0

git diff A Bgit diff A..Bと同義であるので、私はこの答えでは交換可能の両方を使用しますので注意してください。)

git diff Bが変更を示しており、git diff B HEADと等価であるため、Bからあなたが説明した動作があります〜HEAD。回避策git diff A..Bが有効です(git diff HEAD..B)。 A支店、(またはHEAD)を指定するための要件をスキップするには、実行します。それはgit diff HEAD..Bと同等ですので

git diff ..B 

これは、代わりに左にHEADを埋めるためにGitリポジトリを教えてくれます。

+1

'HEAD'を' @ 'と省略することもできます(例:' git diff @ B')。そして '-R'を使ってdiffの方向を逆転させることができるので、' git diff -R B'と書くことができます。 (私はちょうどHEADを書くだろう、それはタイプするのは難しいことではないし、それは最も明白だと思う:-)) – torek

関連する問題