2013-09-03 13 views
12

これは私の問題です。どのようにして特定のパスの2つのリビジョン番号間ですべてのログメッセージを取得できますか?例を使って説明しましょう。特定のリビジョン範囲のGitログ出力

私はこのラインでそれを書き込もうとしました:

git -dir=/home/Desktop/GIT_REFERENCE_REPOSITORIES/manager.git log 10000...15000 

私はそれは私に10000と15000リビジョン間manager.gitに関連するログメッセージを与えると想定。しかし、それはしません。私を助ける人はいますか?

+1

gitで履歴が常に線形になるとは限りません。マージがあればどうしますか? –

+0

代わりに、何が欠けているのか、あなたが期待していなかったものが何になるのですか? – eckes

+0

@eckesこのメッセージを受け取っています fatal:あいまいな引数 '35993 ... 37502':未知のリビジョンまたはパスが作業ツリーにありません。 'git [ ...] - [ ...]' – caesar

答えて

26

リビジョンは、SHA1ハッシュによって指定されます。

あなたが特定のファイルのコミットを表示したい場合は、--でパスを分離する必要があります。

git log oldhash..newhash -- path/to/inspect 

はこれを行います。

また、3つのドット(...)を使用して範囲を指定していることにも注意してください。 通常、2つのドットだけが必要です

3つのドットでは、期待した結果が得られない場合があります。

git log a..b 

手段はまで、私にa以降に行われたすべてのコミットを与え、manページがそれを置くように、bを含む(またはながらman page for gitrevisions、(セクション指定がの範囲)言うように「というコミットを含めます「

git log a...b 

手段)は、3ドット変種」AまたはBのいずれかから到達可能ですが、から到達可能なものを除外コミットを含んBから到達可能ですが、から到達可能なものを除外します両方とも、全く違うものです。

関連する問題