这是我完整的git日志。
$ git log --oneline --decorate
77cbdda (HEAD -> master) file4
8afab80 file3
9a4cd72 file2
76c2efc (origin/master) file1
我想从origin / master获取日志到HEAD。 我试过的时候
$ git log --oneline --decorate origin/master..HEAD
我得到了如下所示的日志消息
77cbdda (HEAD -> master) file4
8afab80 file3
9a4cd72 file2
但我想要的就像下面一样。
77cbdda (HEAD -> master) file4
8afab80 file3
9a4cd72 file2
76c2efc (origin/master) file1
我怎样才能得到这样的日志消息?
答案 0 :(得分:2)
使用~1
git log --oneline --decorate origin/master~1..HEAD
答案 1 :(得分:1)
origin/master..HEAD
表示 HEAD 中不存在于 origin / master 中的内容。
9a4cd72 (origin/master) file2
同时存在 HEAD 和 origin / master ,因此,它不在列表中
$ git log --oneline --decorate origin/master~1..HEAD
这应该有效,除非76c2efc (origin/master)
是你的第一次提交。因此,在尝试origin/master~1
时,您会收到错误,因为实际上它在您的工作树中不存在。
答案 2 :(得分:0)
当我命令
时,我得到了错误的原因$ git log --oneline --decorate origin/master~1..HEAD
那是因为origin / master是第一次提交。如果是第二次提交或更多,则没有错误。
感谢Edmundo。
答案 3 :(得分:0)
您可以使用
git log --oneline --decorate HEAD --not origin/master^@
origin/master^@
只要一个,零个或多个,就会选择origin/master
提交的所有父项。并且--not
会将此提交(及其父项)排除在列表之外。
注意:您需要排除所有父提交,因为如果只排除主线父origin/master~1
,那么在origin/master
合并提交的情况下,将列出所有合并分支的提交。