13

git difftool HEAD~3.. path/to/file各コミットを並べて表示できるように、これら 3 つのコミットごとに difftoolを実行して git で開きたいと思います。

git-difftool でそれを行うにはどうすればよいですか?

4

5 に答える 5

10

または、実行することもできますgit log -p-それはあなたが望むのとほとんど同じことをします

于 2012-07-30T17:42:36.647 に答える
7

これにより、あなたが説明したことが達成されます:

git difftool HEAD~3 HEAD~2 path/to/file
git difftool HEAD~2 HEAD~1 path/to/file
git difftool HEAD~1 HEAD path/to/file

このプロセスを自動化したいですか? それは常に3つのコミットですか?3 方向マージを行いますか?

アップデート:

答えが「はい」「はい」「いいえ」の場合、解決策は次のようになります。

for i in {3..1}; do
  git difftool HEAD~$i HEAD~$((i-1)) path/to/file
done

アップデート:

答えが「はい」「いいえ」「はい」の場合、それは基本的に @ruffin がここで尋ねていることです。そこで私の答えを見てください。

于 2012-07-30T17:39:00.457 に答える
0
for i in 1 2 3
do
  ((j=${i}-1))
  git difftool HEAD~${i}..HEAD~${j} path/to/file &
done
于 2012-07-30T17:41:46.903 に答える
0

少し異なるアプローチ:

1) インタラクティブなリベースを実行する

git rebase -i <commitish>

2) すべてのコミットを編集用にマークします

3) コミットの実行ごとに

git difftool HEAD~1

4) 次のコミットに移動し、手順 3 を繰り返します

git rebase --continue

追加の利点は、レビューで問題が見つかった場合、修正したいコミットを既にチェックアウトしていることです。

于 2015-05-14T08:12:08.043 に答える