2012-04-25 17 views
7

チェンジセットが作成された日付ではなく、チェンジセットがブランチに着いたときにの日付を与えるために 'git log'を得ることは可能ですか? 'git log --graph'(以下の抜粋出力例)は、私が望むものを大いに提供しますが、このブランチにマージされたときではなく、個々のチェンジセットが作成された日付を出力します。git log foo..bar - チェンジセットの日付をマージする方法*

* commit 7e8d68fc58b915cc17bca41be833c4f7a062cd3c 
|\ Merge: 1b4f10d af0dcdd 
| | Date: Wed Apr 25 17:40:16 2012 +0100 
| |  Merge branch 'foo' 
| * commit af0dcdd078197a852fcfad11c5111aa11579aa05 
| | Date: Wed Apr 25 17:36:50 2012 +0100 
| |  t2: adding lorem ipsum again 
| * commit 569f5de0eb40cbf198771812f9b099cf71b5b056 
| | Date: Wed Apr 25 17:36:36 2012 +0100 
| |  t1: adding lorem ipsum 
* | commit 1b4f10d3eea7c9c6304f7b1fd41818b932e4dad0 
| | Date: Wed Apr 25 17:38:24 2012 +0100 
| |  t4: fi fo fa fum x 2 
* | commit d25fa0359fbe655b6a4adeb6225ac283b3543ece 
|/ Date: Wed Apr 25 17:38:10 2012 +0100 
|  t3: fi fo fa fum 
* commit d3239b3e327f740fc7194ecf164538361f715ab5 
    Date: Wed Apr 25 17:34:50 2012 +0100 

上記の出力は、masterブランチからのものです。 t1とt2はfooブランチに作成されました。 t3 & t4はbarに作成されました。次にbarmasterにマージし、fooをマスターにマージしました。

答えて

4

答えの一部が表示されます。fooブランチがmasterにマージされたとき、2つの親を持つ新しいコミット(7e8d68)が作成されました。

しかし、barmasterにマージした場合、それは早送りマージです。つまり、barのすべてのコミットは、masterの最新のものよりも新しいので、最後に付け加えることができます。

これは単純なレイアウトになるため、デフォルト動作です。しかし、それはマージの記録を残しません - あなたの歴史に関しては、最初にmasterでコミットされたように見えます。

これを回避するには、早送りマージを避けるよう明示的にgitに指示することができます。つまり、早送りマージが可能であっても、すべての単一マージでは2つの親とのマージコミットが発生します。これを行うには、git mergeコマンドで--no-ffフラグを使用してください。以前の早送りマージからの情報が存在しないので、あります - それは行動をロギング行動ではなく、をマージの変化だから

残念ながら、あなたはさかのぼってそれを行うことができなくなりますgit logを表示する方法はありません。

+0

ありがとうございました!私はそれを理解するために '--graph'ビューを使わなければならないと思います... –

関連する問題