3

私のプロジェクト履歴は次のようになります。


  • ファイルa、bを編集します
  • コミット、rev1
  • ファイルの名前をa、b-> c、dに変更します
  • コミット、rev2
  • ファイルの編集c、d
  • コミット、rev3

これらのコミット全体で2つのファイルに加えた編集の差分を表示したいのですが、git diff rev0..rev3ファイルaとbの削除と、cとdへのすべての編集が1つの大きな追加として表示されるため、役に立ちません。ファイルの作成と混ざり合っています。

((a、c)、(b、d))が同じファイルとして扱われるrev1とrev3を含むdiffをどのように確認できますか?diffでファイル名を変更する必要はありませんか?

4

3 に答える 3

2
git diff -C

名前を変更して差分を取り、コピーも検出します。

上記の回答で述べたように

git diff -M

名前の変更だけを検出します。

于 2012-11-07T17:22:57.503 に答える
2

を使用しgit diff -Mます。

git diff -M90%また、90% 類似しているファイルを検出するように微調整することもできます。(git statusデフォルトで何を使用するかはわかりません)

于 2012-11-07T17:20:59.320 に答える
1

git diff型の引数を受け入れます<rev>:<filenamegit log --follow <file>必要なリビジョンと、そのリビジョンでのファイルの名前を見つけるために使用します。たとえば(私のコードでは、過去にC++に変換されていました)

git diff 44308:./draw.c draw.cpp

あなたにとってはそうかもしれません

git diff rev1:./a c

ファイルへのパスを指定する必要があることがわかりました。指定しないと、git 自体がヒントをくれました。

于 2016-02-11T11:58:28.937 に答える