2016-06-14 22 views
1

特定のコミットがマスターにマージされたときにタイムスタンプを取得しようとしています。Git - コミットIDに基づいてマージされたタイムスタンプを取得

git logを実行すると、著者のタイムスタンプ、つまりコミットが最初に作成されたタイムスタンプが表示されます。

私はコミッターのタイムスタンプ、つまりコミットが最後に更新されたタイムスタンプも見ることができます。しかし、コミットがマスターにマージされたときのタイムスタンプは表示されません。 (これは、コードレビューまたは最後のコミットが行われた後に発生するかもしれないその他の遅延に基づいてコミッターのタイムスタンプとは異なります)。

gitはマージタイムスタンプをどこに保存することもできないのですか?

私の試み:

私はgit show <commitid> --statを使用してみましたが、これはまた、唯一の著者のタイムスタンプを示しています。

第二に、私はgit log --format=fullerを行なったし、これは以下の入隊:

Author:  abc 
AuthorDate: Mon Jun 13 12:27:59 2016 -0500 
Commit:  abc 
CommitDate: Mon Jun 13 14:32:21 2016 -0500 

コミットするときの痕跡が実際にマージされませんでした。

+0

@PetSerAlなぜあなたは--all' '含めているが?質問はそれがマスターに合併されたときを知ることだけを求めます。また、 '--topo-order'は' --ancestry-path'には一行の祖先しか表示されないので余計なようです。最後に、 '-n 1'と組み合わされたときに' --reverse'は効果がありません。なぜなら、結果セットが1に制限されているからです。 –

答えて

1

(独自のエイリアス名を使用して自由に感じる)エイリアスを作成します。

git config --global alias.merge-commit '!f(){ for r in $(git rev-list ${2:-HEAD} --first-parent); do ! git merge-base --is-ancestor $1 $r && git rev-list --first-parent $r..${2:-HEAD} --reverse | head -1 | git log --stdin -1 ${*:3} && break; done; }; f' 

使用例:(デフォルトはHEADです)

git merge-commit commit 
git merge-commit commit another-branch 
git merge-commit commit another-branch --format=fuller 
関連する問題