比較すると、Git diff は異なる変更を返すようです。
git diff origin/master ... origin/branch
git diff origin/master...origin/branch
2つの違いは何ですか?最初のコマンドの違いがわからない人のために、...
はスペースでバッファリングされています。
比較すると、Git diff は異なる変更を返すようです。
git diff origin/master ... origin/branch
git diff origin/master...origin/branch
2つの違いは何ですか?最初のコマンドの違いがわからない人のために、...
はスペースでバッファリングされています。
通常、「ドット」表記は、範囲と完全なドキュメントを指定するためのものであり、git log --help
「リビジョンの指定」セクションで入手でき、主にのようなリストに使用されますgit log
。
簡単に言えば、コミットから開始された2つのブランチがあります。
a - b - c (master)
\d - e (topic)
git log master..topic
トピックからは到達可能であるがマスターからは到達可能ではないコミット、事実上「d」と「e」が表示されます
git log topic..master
マスターからは到達可能であるがトピックからは到達可能ではないコミット、事実上「b」と「c」が表示されます
これgit log master...topic
で(3つのドットに注意)、マスターまたはトピックのいずれかから到達可能であるが、両方からは到達できない、事実上b、c、d、およびeのすべてのコミットが表示されます。
ただし、差分は範囲ではなく2つの履歴ポイントで機能しているため、たとえば表記法
git diff topic master
また
git diff topic..master
同じ結果を返す必要があります。つまり、指定されたブランチの先端間の差分3つのドット表記
git diff topic...master
トピックブランチがマスターから分岐されてからマスターで発生した変更を表示する必要があります
Janが指摘したように、スペースで囲まれた3つのドットの表記は、HEADがのブランチの1つと同じコミットを指している場合のブランチの先端の違い(ドットなしや2つのドットなど)としてgitによって理解されます。興味。HEADがトピックでもマスターでもない場合、3つの方法で差分が生じます。
お役に立てば幸いです。
正しい構文はスペースを含まず、共通の祖先から右のブランチへの差分をとります。
...
はリビジョンでもパスでもないため、スペースがあるとエラーになるはずですが、引数パーサーはそれを HEAD の同義語と見なします。おそらく事実の副作用、それ...branch
は意味HEAD...branch
とbranch...
意味branch...HEAD
です。git diff は任意の数の引数を取ることができ、2 つ以上の異なる引数を指定すると n-way diff を生成するという事実とともに。と同じリビジョンを指していない場合でも、指していないgit diff A ... B
場合でも、3 方向の差分を確認したところ、実際に生成されます。A
B
HEAD