2012-05-14 36 views
8

gitリポジトリに作業中のファイルがあります。このファイルを誰がブランチにマージしたのかを知りたいのですが。git commitをブランチにマージした人はどうですか?

ファイルを導入したコミットを特定するコミットハッシュ(552a976f1a25f9bad57efb9455e951f6b7b3367f)があり、そのファイルがブランチstagingにあることがわかりました。

上記のコミットをマージしたコミットのハッシュをstagingブランチに見つける方法はありますか?私はマージしたユーザーとマージの日付を探したい。

+0

実際のマージ(早送りマージではなく)でしたか?そして 'git log path/to/the/file'(または' gitk')だけを使うことはできませんか? – svick

+0

git logはファイルをコミットした人の名前を示しています。そのコミットをステージングブランチにマージした人を探したいと思います。 –

答えて

1
git log <commit-id>..<branch> --ancestry-path --merges --reverse 

はあなたのあなたが興味<commit-id>現在の状態以来起こったマージのリストが表示されます<branch>。マージするワークフローによっては、最初にマージしたものや次のもののいずれかが対象です。

(それが「グラフの境界」に属します - oではなく*でマークされた)グラフの下の方にご<commit-id>ため

git log --oneline --graph --decorate --ancestry-path --boundary <commit-id>..<branch> 

ルックで歴史の関連部分を視覚化すると便利になります。

1
git log -1 --merges <hash> 

最新のマージコミットログは、<hash>コミット(自身を含む)以降に表示されます。

+1

これはかなり良い解決策です。時にはマージは最初のマージですが、必ずしもそうではありません。私の場合は、私が興味を持ったのは2番目のマージです。 –

+0

'git log 'は、** の前に** **コミットを表示します(先祖はと表示されます)。したがって、このコマンドは、メインブランチに持ってきたマージではなく、あなたのコミットより前のマージ*を表示します。 –

2

branches

私が正しくあなたを理解していれば、あなたはC5を持っている、とあなたはC6を探しています。その場合、おそらくこれを探しているでしょう:

git rev-list --merges HEAD --not <hash> --reverse 

ハッシュコミット後に起こったマージコミットの一覧が表示されます。このコマンドでHEADを使用します。この例では、master(例)またはstaging(存在する)とします。おそらくあなたは、コミット後に起こった最初のマージを探していますがあまりに複雑でない環境では

...しかし、あなたはチャンスのこの種を持っていない場合、あなたは試すことができ:

git log --graph --decorate HEAD...<hash>^ 

か(例えばgitkなど)あなたの歴史を探索する任意のグラフィックツール...

関連する問題