web-dev-qa-db-ja.com

特定のリビジョン範囲のGitログ出力

これが私の問題です。特定のパスの2つのリビジョン番号間のすべてのログメッセージを取得するにはどうすればよいですか?例を挙げて説明しましょう。

私はこの行でそれを書こうとしました:

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

10000から15000リビジョンのmanager.gitに関連するログメッセージが表示されると思いました。しかし、そうではありません。私を助ける人がいますか?

21
caesar

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

特定のファイルのコミットを確認する場合は、--でパスを区切る必要があります。

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

これを行います。

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

3つのドットは、期待した結果が得られない場合があります。 gitrevisionsのmanページ (セクションSPECIFYING RANGES)が言うように、

git log a..b

a以降に行われたすべてのコミットをbまで含めて(または、マニュアルページに「コミットを含めるbから到達可能であるが、3ドットのバリアントa ")から到達可能なものを除外する

git log a...b

「aまたはbから到達可能なコミットを含めるが、両方から到達可能なコミットを除外する」ことを意味します。これはまったく別のことです。

40
eckes