这是我在我的知识星球中分享的文章,阅读更多文章可以加入我的星球:
git 的提交区间指的是用两个点 或者三个点 的语法将 AB 两个提交连接起来,从而表示一系列提交。这是非常容易让人产生疑惑的一个话题,主要是因为它没有固定的含义,需要根据不同的命令来记忆。本文主要结合 diff、log 这两个命令来介绍。首先,假设我们基于初始提交建立了 a 和 b 两个分支,各有一次提交,如图所示。分支 a 的提交是数字,分支 b 的提交是字母。diff
此时,双点语法 表示对比这 AB 两个提交的差异:
git diff branch_a..branch_b
# 直接对比两个 commit
# 等价于直接写空格
git diff branch_a branch_b
这个结果还是非常符合常识的,就不多解释了。三点语法 则表示:AB 两次提交的共同祖先和 B 之间的 diff
git diff branch_a...branch_b
两个分支的共同祖先是第一次提交,因此上述命令其实是展示分支 b 和 b 的父提交之间的 diff。如图所示,需要注意的是,如果两次提交在同一个分支上,那么双点和三点语法的效果是一致的。log
log 的双点语法 和 diff 的三点写法具有相同的含义,都表示仅在 B,但不在 A 的那些提交。如图所示:比如:
ggp branch_b..branch_a
这个命令只会输出分支 a 的日志,如图所示:三点语法 表示的是那些只属于 A 提交,和只属于 B 提交的那些提交,如图所示:例如:
ggp branch_b...branch_a
这个命令将单独得到分支 b 和 分支 a 上的各一次提交:另外需要注意的是,根据我的实践, 中的双点、三点表示法和 是一致的,就不另外说明了。最后用一张图来总结本文:广告我是张星宇,喜欢探索问题的本质,讨厌一切不说人话的描述。正在学习前端,励志成为一名全栈工程师。博客、Github、微博、简书、掘金等平台的 ID 都是bestswifter,如果觉得本文有帮助,欢迎加入我的知识星球并持续与我互动,我会不定期分享自己的收获。
领取专属 10元无门槛券
私享最新 技术干货