为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Git
青春有我 2019-08-02 11:02:18
双点“.”的区别是什么?和三点“…”在Git提交范围内?有些Git命令采用提交范围,一种有效的语法是将两个提交名称与两个点分开。..,另一个语法使用三个点。....两者有什么不同?
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞


这取决于您是否使用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文件:

  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.

有点模糊。基本上,这意味着它只显示了该分支与另一个分支之间的差异:它查找与您给出的第一个提交之间的最后一个普通提交,然后将第二个提交区分开来。与此分支相比,查看该分支中所做的更改是一种简单的方法,而无需注意该分支中的更改。

这个..有点简单:在git-diff案例,就像git diff A B就像A对B一样logCase,它显示了B中的所有提交,但A中没有。



查看完整回答
反对 回复 2019-08-03
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

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



查看完整回答
反对 回复 2019-08-03
  • 3 回答
  • 0 关注
  • 505 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信