gitの中に3つのドット

Gitの中に「..」とトリプルドット二点間の違い「...」の範囲をコミットは何ですか?

Gitのログとの範囲をコミット使い方

あなたのような範囲コミット使用しているとき.....ではgit log、それらの間の違いは、支店AおよびBのため、ということです

git log A..B

あなたが表示されますBがAを持っていないことがあるコミットのすべてをしながら、

git log A...B

あなたが表示されます両方の Aがあり、そのBが持っていないコミット、およびBは、Aが持っていないことを持っているコミットをして、または他の言葉で、それはAとBの共有の両方のコミットのすべてを除外しますこれだけで、彼らがコミット表示しません両方のシェアを

ベン図&木をコミットして可視化

ここでの視覚的な表現ですgit log A..B分岐BがAに存在しないことを含んでコミットはコミットの範囲で返されるものである、とベン図に赤で強調表示され、コミットツリーに青丸で囲みました:「gitのログA..B」ダイアグラム

     

 

 

これらは、するための図です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の差分と範囲をコミット使い方

いつか私がコミット範囲がでどのように動作するかについて、私自身の説明加えるかもしれないgit diffが、今のところ、あなたがチェックアウトする場合がありますダブルドットとの違いは何ですか「..」とトリプルドットを「...」Gitの差分にコミット範囲は?

参照してください

 

 

 

https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection#Commit-Ranges

ダブルドット

最も一般的な範囲の仕様は、ダブルドット構文です。

これは、基本的には、1つのコミットから到達可能であるが、別の到達できないコミットの範囲をGitに要求します。

たとえば、あなたが持っているように見える歴史コミット言う  範囲選択のための例の歴史を。

範囲選択のための例示的な履歴。
範囲選択については、図137の例履歴。

あなたが見たいと言うあなたにあるもの  experiment はまだあなたにマージされていない枝  masterの分岐

あなたはあなたとちょうどそれらのコミットのログを表示するにGitを求めることができます  master..experiment -つまり、「すべてはマスターから到達できない実験から到達可能なコミットします。」

これらの例では簡潔にする目的简洁と明瞭清楚するために、図からコミットオブジェクトの文字は、彼らが表示されるだろうと順番に実際のログ出力の代わりに使用されています。

$ git log master..experiment
D
C

一方、あなたが反対の見たい場合は-のすべてのコミット  master ではありません  experiment -あなたはブランチ名を逆にすることができます。 experiment..master あなたのすべてを示して  master から到達可能ではないが  experiment

$ git log experiment..master
F
E

保存しておきたい場合に便利です  experiment 日付への分岐までを、あなたがマージしようとしているものをプレビューします。この構文のもう一つの頻繁な使用は、リモートにプッシュしようとしているかを確認することです。

$ git log origin/master..HEAD

このコマンドは、あなたはしていない現在のブランチにコミット示し  master 、あなたのブランチ  origin のリモート。あなたが実行している場合は  git push 、あなたの現在のブランチを追跡している  origin/master、で列挙されたコミットが  git log origin/master..HEAD サーバーに転送されますコミットがあります。また、Gitが前提と持っている構文のどちらか片方を省略することができます  HEADたとえば、次のように入力して、前の例と同じ結果を得ることができます  git log origin/master.. Gitの代替を-  HEAD 片側が欠落している場合。

 

トリプルドット

最後の主要な範囲選択の構文はによって到達可能なすべてのコミットを指定するトリプルドット構文であり、  どちらか  ではなく、それらの両方によって、2つの参照のを。バック例を見にコミット履歴  範囲選択のための例の歴史。あなたが何であるかを確認したい場合  master や  experiment 任意の一般的な言及はなく、次のコマンドを実行します。

$ git log master...experiment
F
E
D
C

繰り返しますが、これはあなたに、通常の与え  log 出力をしかし、あなたは唯一の伝統的なコミット日時順に表示されて、これら4つのコミットのコミット情報を示しています。

で使用する一般的なスイッチ  log 、この場合にはコマンドがある  --left-right。各コミット範囲の側面がどのあなたを示しており、これは、出力をより便利にすることができます:

$ git log --left-right master...experiment
< F
< E
> D
> C

これらのツールを使用すると、はるかに簡単にGitはコミットまたはあなたが点検したいコミットするものを知らせることができます。

 

 

 

おすすめ

転載: www.cnblogs.com/chucklu/p/10930107.html