1

このファイルがブランチの後に作成された場合、プロジェクトからファイルを削除したマージを見つける方法はありますか?私の問題を再現するための次の手順は、明確にする必要があります。

  • git init
  • タッチファイル1
  • git add file1
  • git commit file1-m"マスターにfile1を追加しました"
  • git branch newbranch
  • タッチファイル2
  • git add file2
  • git commitfile2-m「分岐後にマスターにfile2を追加しました」
  • echo"マスターがfile1"に変更します>>file1
  • git commit file1-m"マスターのfile1を変更しました"
  • git checkout newbranch
  • echo"newbranchがfile1"に変更されます>>file1
  • git commit file1-m"newbranchのfile1を変更しました"
  • git merge master -s ours
  • タッチファイル3
  • git add file3
  • git commitfile3-m「newbranchにfile3を追加しました」
  • gitチェックアウトマスター
  • タッチファイル4
  • git add file4
  • git commitfile4-m「マスターにfile4を追加しました」
  • git merge newbranch

さて、file2を削除したコミット(マージ)をどのように見つけることができますか(つまり、この行/コマンドで発生したマージ: "git merge master -s ours")。

編集:

  • git log --graph --format = oneline
*010a604feef300244386490f9c7c777dc9af6b16マージブランチ'newbranch'
| \  
| *3e7f3f6b53c2c92d137fa5a3bac190aa4c3e641fがnewbranchにfile3を追加しました
| *b07090c2c6dd5cd2783f3db160f5b6f433beb544ブランチ'master'をnewbranchにマージします
| | \  
| * | a0053413ab81869574475c0ce889ee721f5ed254newbranch4のfile1を変更
* | | 859e813acd24c2090287ef9d83da339c06f1c754マスターにfile4を追加
| | /  
| / |   
* | 0004dc5cfe23874208c6a921f9c7434fcffba8f4マスターのfile1を変更しました
* | 172d20a93ba40fb040348acc5ffe2ad45803ec22は、分岐後にマスターにfile2を追加しました
| /  
*6a59be0a3d4203db84b67c02231c420b518fc349マスターにfile1を追加

私が探しているコミットは次のとおりです。b07090c2c6dd5cd2783f3db160f5b6f433beb544

  • git log -g --diff-filter = D --file2

戻り値:commit 6a59be0a3d4203db84b67c02231c420b518fc349

  • git log -g --diff-filter = D --follow --file2

戻り値:commit 010a604feef300244386490f9c7c777dc9af6b16

不思議なことに、問題を発見したリポジトリでは、git log -g --diff-filter = D --filenameを使用すると、探していた正しいコミットが得られました。

4

1 に答える 1

0

これを行う1つの方法はですgit log --all --raw --diff-filter=D -m。現在使用--allしているブランチだけでなく、すべてのブランチを確認することです。これ-gはreflogのみを検索するため、中断しました。1つ以上のマージが別のリポジトリで行われた場合、reflogは探しているコミットにアクセスしたことがない可能性があります。-mとは--raw、マージ(競合を除いて通常は非表示)を含む各コミットで何が起こったかを示します。このコマンドfile2は、少なくとも投稿したシナリオでは、両方のマージを削除されたポイントとしてフラグを立てます...

于 2013-05-24T17:36:51.340 に答える