git log origin/master
git log origin/master..
上面的代码与此有何不同?我试图理解..
符号确切的作用。我以为它是一个范围符号,但在这种情况下它的作用不同。
git log origin/master
git log origin/master..
上面的代码与此有何不同?我试图理解..
符号确切的作用。我以为它是一个范围符号,但在这种情况下它的作用不同。
git log
(以及所有其他采用类似参数集的Git命令),它是一个查找修订范围的规范。请记住,在Git的一般世界中,这意味着修订图的某个子图--对大多数人来说,通常只是一个修订列表的范围。(如果您没有进行太多分支操作,那么在Git中也会简化为此)。steve@monolith:~/src/git <master>$ git log --pretty=oneline --abbrev-commit --decorate -n 4
ea3107d (refs/heads/master) Add another dummy comment
869c260 Add dummy comment
6345d7a (refs/remotes/origin/master, refs/remotes/origin/HEAD) Merge branch 'maint'
be427d7 allow -t abbreviation for --track in git branch
git log origin/master
会像这样(假命令):
git log INITIAL..origin/master
当:
git log origin/master..
是否为:
git log origin/master..HEAD
我认为它是一个范围。".. "命令将向您显示 origin/master 最后一次提交和您正在工作的分支上的最后一次提交之间的提交。
您还可以通过在“..”后面放置要比较的分支来指定要比较的分支,因此它将变成
git log origin/master..<branch_name>
git log 663f4c..fec6b
尝试使用git help log
来查看其他选项 :-)
我自己记住语义的办法是...
我将 'git log start..end' 理解为日期范围,其中 start 代表 更早的历史部分,end 代表 更近期的历史。然而,与日期范围不同,提交范围不是线性回溯,并且与实际时间无关,而是一个集合减法,即:
(commits reachable from "end") - (commits reachable from "start")
请记住,在提交范围中被排除的起始点代表一组一个或多个提交,而不是单个提交。
实际上,它指的是在“起始”(排除)和“结束”(包含)之间创建的所有提交。