如何在git中展示“新”的提交记录

9

我愿意

git pull

我想从远程获取新的提交并将它们与我的本地分支合并。

我该如何列出“刚刚到来”的提交记录?


https://dev59.com/h2w15IYBdhLWcg3wkMjz - ellotheth
7个回答

17

你可以使用以下代码:

git log @{1}..

这与

git log currentbranch@{1}..currentbranch

@{1} 表示“该分支最后一次更新之前所指向的提交”。

这将准确显示已合并的提交。


3
如果你执行git pull,它会自动合并提交;你无法查看新的提交,但git log会给出所有提交的列表。
如果你仅仅使用fetch获取提交,在合并之前可以列出它们,但我认为这可能有点无意义。
编辑:快速浏览互联网告诉我,git log -p ..FETCH_HEAD将列出已获取但未合并的提交,作为某种趣味事实,以防您需要仅查看已获取的提交。
还有,ellotheth在他们的评论中的链接似乎有一个解决方案,即使用git diff,但是也许git log ORIG_HEAD..或类似的方法也可以?
...尽管如此,使用fetchmerge而不是pull可能是明智的选择,特别是如果您假设您不一定立即或根本不想合并所有提交。

2
我认为
git log --topo-order

应该可以工作。

它应该按照它们来到当前分支的顺序显示日志条目,而不是按照时间顺序。


你知道这个参数在哪里有文档记录吗? - Matthias
没事了,我自己找到了它(链接:https://git-scm.com/docs/git-log#_commit_ordering)。 - Matthias

1
首先调用git fetch 然后:
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative master..origin/master

这将会显示类似这样的内容:
* d3e3a17 - (origin/master, origin/HEAD) Fix test (3 minutes ago)
* a065a9c - Fix exec count (4 minutes ago)

相关链接: 如何在git中查看分支之间的提交差异?


1
我建议您参考以下命令:

git help log

以查看可能有助于您情况的选项。也许您想使用 --first-parent 选项?
我个人经常使用以下命令:

git log -n 5 --oneline


这将显示最近的5个提交记录,并以单行显示它们的摘要信息。

“git log -n 5” 不足以查看最新的提交记录,因为这些提交可能不是最顶部的条目(如果它们是一个月前提交的,但今天才推送)。 - Alex

1
如果你只对特定的分支感兴趣(例如 master),你可以从 git fetch 的输出中取出该分支名称所在的行:
6ec1a9c..91f6e69  master     -> origin/master

使用它构建一个 git log 命令。
git log --graph --decorate 6ec1a9c..91f6e69

这两个句点表示“所有在第二个提交(origin/master)中但不在第一个提交(master)中的提交”,这就是你要找的内容。

-1

假设你上次提交是2周前,那么使用 git log --after="2 weeks ago" 将显示从今天到2周前的日志。希望这能有所帮助。 - user1593705
如果有人4周前提交了一些更改但没有推送,那么这种方法就不起作用了。他现在推送了,我进行拉取。因此,我不会将他的提交视为“新提交”。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接