请问双点“.”的区别是什么?和三点“…”在Git提交范围内?


双点“.”的区别是什么?和三点“…”在Git提交范围内?

有些Git命令采用提交范围,一种有效的语法是将两个提交名称与两个点分开。..,另一个语法使用三个点。....

两者有什么不同?



青春有我
浏览 509回答 3
3回答

月关宝盒

这取决于您是否使用log命令或命令diff命令。在log箱子,在man git-rev-parse文件:若要排除可从提交中访问的提交,请使用前缀^表示法。例如,^r1 r2意味着从R2提交可到达的,但排除那些可从r1到达的提交。这个集合操作经常出现,以至于它有一个缩写。当您有两个提交R1和R2(根据上面指定的修改中解释的语法命名)时,您可以请求从R2可以到达的提交(不包括那些可以从r1到的提交),并且可以写成“r1.r2”。类似的表示法“R1.R2”被称为R1和R2的对称差,并被定义为“R1 R2-而不是$(git合并-基-所有r2)”。这是一组提交,可以从R1或R2之一访问,但不能同时从两者中访问。这基本上意味着您将得到在这两个分支中的任何一个中的所有提交,而不是在这两个分支中都得到的提交。在diff箱子,在man git-diff文件:&nbsp;&nbsp;git&nbsp;diff&nbsp;[--options]&nbsp;<commit>...<commit>&nbsp;[--]&nbsp;[<path>...] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;form&nbsp;is&nbsp;to&nbsp;view&nbsp;the&nbsp;changes&nbsp;on&nbsp;the&nbsp;branch&nbsp;containing&nbsp;and&nbsp;up&nbsp;to &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;second&nbsp;<commit>,&nbsp;starting&nbsp;at&nbsp;a&nbsp;common&nbsp;ancestor&nbsp;of&nbsp;both &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<commit>.&nbsp;"git&nbsp;diff&nbsp;A...B"&nbsp;is&nbsp;equivalent&nbsp;to&nbsp;"git&nbsp;diff &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(git-merge-base&nbsp;A&nbsp;B)&nbsp;B".&nbsp;You&nbsp;can&nbsp;omit&nbsp;any&nbsp;one&nbsp;of&nbsp;<commit>,&nbsp;which &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;the&nbsp;same&nbsp;effect&nbsp;as&nbsp;using&nbsp;HEAD&nbsp;instead.有点模糊。基本上,这意味着它只显示了该分支与另一个分支之间的差异:它查找与您给出的第一个提交之间的最后一个普通提交,然后将第二个提交区分开来。与此分支相比,查看该分支中所做的更改是一种简单的方法,而无需注意该分支中的更改。这个..有点简单:在git-diff案例,就像git diff A B就像A对B一样logCase,它显示了B中的所有提交,但A中没有。

慕雪6442864

这个答案实际上是用一个简洁的文本、例子和图片来解释这种区别。我更喜欢它比目前最高的投票的答案,它只是引用不明确的文件。(Tl;博士,多亏了这个答案,我才真正理解其中的不同之处。)
打开App,查看更多内容
随时随地看视频慕课网APP