3

出力git logは、現在チェックアウトしているブランチによって異なります。gitドキュメントのどこでこの動作を説明していますか?

私は見ましたがgit log --help、チェックアウトしたブランチに基づいて状況依存である をgit rev-list --help説明するものは何も見当たりません。git log

編集:
@max と @James が言及した次のセクションを読みましたが、コミットの 1 つが省略されて..指定された場合に何が起こるかは明らかです。しかし、両方のコミットが省略された場合に何が起こるかはあいまいです。..また、コミットが 1 つ省略され、が省略されている場合もあいまいです。

<以来>..<まで>

指定された 2 つのコミットの間のコミットのみを表示します。<since> または <until> を省略すると、デフォルトで HEAD、つまり現在のブランチの先端になります。

したがって、たとえば、次は同等です:
git log master.. は次と同等です:
git log master..HEAD

git log ..master次と同等です。
git log HEAD..master

しかし、<since> と <until> の両方を省略した場合はどうなるでしょうか以下と同等で
git logはありません:
git log HEAD..HEAD

git logでは、<since>..<until> 形式では何が相当するのでしょうか?

そして、コミットが 1 つだけリストされていて、リストされていない場合は、どうすれば..よいでしょうか?
git log fooと同等:
git log foo..HEADまたは
git log HEAD..foo?

4

2 に答える 2

3

git-log man ページの最初のセクションの 1 つ:

<以来>..<まで>

指定された 2 つのコミットの間のコミットのみを表示します。<since> または <until> を省略すると、デフォルトで HEAD、つまり現在のブランチの先端になります。

git log開始するポイント (またはポイント) が必要なため、リビジョンが指定されていない場合、デフォルトでHEAD現在のブランチを指す になります。

于 2013-02-26T00:13:08.250 に答える
1

Git ログには暗黙の引数 HEAD があるため、実行すると

git ログ

あなたが実際にやっている

git ログ HEAD

これは、現在のブランチの先端からログを取得することを意味します

since..untilオプションのGit Logマニュアルから

指定された 2 つのコミットの間のコミットのみを表示します。または が省略された場合、デフォルトで HEAD、つまり現在のブランチの先端になります。と を綴る方法のより完全な一覧については、gitrevisions(7) を参照してください。

更新された質問に従って、以下はあなたが述べたすべての状況を説明する必要があります

Git リビジョンから

たとえば、origin.. は origin..HEAD の短縮形であり、「origin ブランチから分岐してから何をしましたか?」と尋ねます。同様に、..origin は HEAD..origin の短縮形であり、「私がそれらから分岐してから、origin は何をしましたか?」と尋ねます。.. は >HEAD..HEAD を意味することに注意してください。これは、HEAD から到達可能で到達不能な空の範囲です。

.. が省略されている場合は、

git log <rev>

これには、rev から到達可能なコミット (つまり、その先祖) が含まれます。これは、マニュアルに記載されているように、オプションが git-log に適用されるgit-rev-listで説明されています。

于 2013-02-26T00:19:56.690 に答える