ここでのほとんどの回答は、クリーンな作業ディレクトリと複数のインタラクティブなステップ(スクリプトには不適切)が必要か、またはすべてのケースで機能しない場合があります。同じ。
master
ブランチにマージdevelop
した場合、ブランチで何が変わるかを実際に確認するには、次のようにします。
git merge-tree $(git merge-base master develop) master develop
それは配管コマンドなので、それはあなたが何を意味するのかを推測するのではなく、明示する必要があります。また、出力を色分けしたり、ポケットベルを使用したりしないため、完全なコマンドは次のようになります。
git merge-tree $(git merge-base master develop) master develop | colordiff | less -R
— https://git.seveas.net/previewing-a-merge-result.html
(リンクを提供してくれたDavid Normingtonに感謝)
PS:
マージの競合が発生すると、通常の競合マーカーが出力に表示されます。例:
$ git merge-tree $(git merge-base a b ) a b
added in both
our 100644 78981922613b2afb6025042ff6bd878ac1994e85 a
their 100644 61780798228d17af2d34fce4cfbdf35556832472 a
@@ -1 +1,5 @@
+<<<<<<< .our
a
+=======
+b
+>>>>>>> .their
ユーザー@dreftymacは良い点を示しています。これは、ステータスコードから簡単に把握できないため、スクリプト作成には適していません。競合マーカーは状況(削除されたものと変更されたものなど)によってかなり異なる場合があり、grepも難しくなります。注意してください。
git merge
と思いgit reset --keep HEAD@{1}
ます。