git log origin / master..HEAD但包括origin / master本身

时间:2017-03-23 18:41:04

标签: git git-log

这是我完整的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

我怎样才能得到这样的日志消息?

4 个答案:

答案 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合并提交的情况下,将列出所有合并分支的提交。