の違いを教えてダブル-ドット".."のトリプル-写"..."でGitコミットの範囲?
質問
一部のGitコマンドにコミットの範囲および有効な構文は、別々の二つのコミット名とドット ..
, は、別の書式は三つのドット ...
.
の違いを教えてくる。
解決
それはあなたがlog
コマンドまたはdiff
コマンドを使用しているかどうかによって異なります。 man git-rev-parse
場合には、それはman git-diff
マニュアルにあります:
除外するには、接頭辞^表記が使用され、コミットから到達可能なコミット。例えば。 ^ R1 R2手段は、R2から到達可能なコミットが、R1から到達可能なものを排除します。
この設定操作はそれほど頻繁に表示されます それのための速記があること。いつ 次の構文に従って名前が付けR1とR2は(で説明した2つのコミットをしてい あなたは、)上記の修正をすることができます指定します 到達可能なコミットを求めます あるものを除くR2から 「^ R1 R2」と、それによってR1から到達可能 "r1..r2" のように書くことができます。
同様の表記 "R1 ... R2" であります R1のと呼ばれる対称差と R2および「R1、R2の--notとして定義されています $(Gitのマージベース--all R1 R2)」。それはあります あるコミットのセット R1またはR2のいずれか一方から到達可能 両方ではないから。
基本的にあなたが両方ではないでは、二つのブランチのいずれかにあるすべてのコミットを得るだろうことを意味します。
..
場合、それはgit-diff
マニュアルにあります:
git diff [--options] <commit>...<commit> [--] [<path>...] This form is to view the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>. "git diff A...B" is equivalent to "git diff $(git-merge-base A B) B". You can omit any one of <commit>, which has the same effect as using HEAD instead.
どのビットファジーです。基本的には、それは別のブランチに比べて、そのブランチで唯一の違いを示し意味:それは最後の一般的なものは、あなたがそれを与えた最初のcommittishでコミットを探し、その後、それに二committishをdiffを。それだけでこのブランチの変更の通知を受けずに、このブランチに比べて、その枝で作られて変更を確認するための簡単な方法です。
git diff A B
幾分簡単である:<=>場合、それは<=>同じだとちょうど<=>場合B.に対してdiffを、それがBにあるすべてのコミットを示すがありませんAインチ
他のヒント
をコミットの範囲とGitログ
きいコミットの範囲のような ..
や ...
と git log
, は、これらの差額については、支店、
git log A..B
表示します すべての犯として使用された東京オリンピックがない, な
git log A...B
表示します 両 を犯したが、Bさんいるし、犯として使用された東京オリンピックがない、またはその でフィルターの為の両AおよびB株ることのみを示す為のう な 共.
可視化Venn図解&コミット木
こちらは視覚的に表現 git log A..B
.の犯店億含まれていないが存在するかによって返されるコミットの範囲、および、赤色でハイライトされ、ベン図(Venn diagram)、丸のチュートリアルでは、レーザのコミット木:
これらの図 git log A...B
.ここに約束する 共有 によるいずれのプログラムについてもいないによって返されるコマンド:
のトリプルル-ドットコミット範囲 ...
有用な
しないように注意してくださいトリプルル-ドットコミット範囲 ...
りますが、ビームサイズが大きlogコマンドを使用 --left-right
オプションを見る為に所属する支店:
$ git log --oneline --decorate --left-right --graph master...origin/master
< 1794bee (HEAD, master) Derp some more
> 6e6ce69 (origin/master, origin/HEAD) Add hello.txt
上記出力してください犯に所属している master
は頭 <
, が犯に所属している origin/master
は頭 >
.
をコミットの範囲とGit Diff
いつかかばんはいかがでしょうか、自分の説明のためにどのようにコミットの範囲の仕事 git diff
, が、現するためにチェック の違いを教えてダブル-ドット".."のトリプル-写"..."でGit diffコミットの範囲?.