我正在阅读man
的{{1}}页面:
有两种方法可以指定要操作的提交。
- 单个提交
醇>git format-patch
指定通往当前分支的提示的提交,这些提交不在导致<since>
输出的历史记录中。...
我很难理解&#34; <since>
&#34;。我认为应该是&#34; ...历史上不 ...&#34;。
答案 0 :(得分:1)
措辞可能令人困惑,因为英语解析很棘手,但这就是它的含义:
单个提交
<since>
指定
- 提交当前分支的提示
醇>不在
中
- 导致
的历史记录 醇><since>
要输出。
以一种更容易理解的方式,以图形绘制开始:
______________________________
...--o--o--<since>--o--o--o--o <-- currentbranch (HEAD)
__________________
我编号为2的部分导致<since>
的历史记录是带下划线的部分。我编号为1的部分,通向当前分支的提示的提交,是带有上划线的部分。整个表达式相当于&#34;带衬垫的集合,减去带下划线的集合&#34;,在 - 和排除 - <since>
之后离开提交,最多为包括 HEAD
。
这也是git rev-list
(因此git log
)在您撰写时的含义:
<since>..HEAD
请注意,如果历史记录有分支,结果可能会有点令人惊讶:
...--o--o--*--*--*--*---* <-- currentbranch (HEAD)
\ /
o--<since>--*
在这种情况下,<since>..currentbranch
包含的提交是标有*
的提交。这对git format-patch
来说是不特殊:当您使用拼写为<since>..currentbranch
或{{1的语法时,它适用于所有基于提交图的操作}或<since>..HEAD
(这三个意思都是一样的。)
(可能令人困惑的是,<since>..
没有执行基于提交图的操作,因此如果您尝试根据git diff
的行为来理解,那么将赢得看到这种效果。大多数人做的一个命令使用了很多做看到这种效果{{1} }本身 - 但由于git diff
默认情况下不会绘制图形,因此不清楚它是什么。为了使其显而易见,请从/ DOG获取帮助:{{1}对于 D ecorate O neline G raph,日志或事情总是更有趣: - )