我愿意
git pull
从远程获取新提交并将它们与我的本地分支合并。
如何列出“刚进来”的提交?
你可以使用这个:
git log @{1}..
这与
git log currentbranch@{1}..currentbranch
其中@{1}
符号表示“分支在上次更新之前指向的提交”。
这会准确地向您显示合并的提交。
如果你这样做git pull
,它会自动合并提交;你不能只看新的,而是git log
会给你一个所有提交的列表。
如果您只是fetch
编辑提交,您可能会在合并之前列出它们,但我认为这可能有点毫无意义。
编辑:快速浏览一下 Internet 似乎告诉我git log -p ..FETCH_HEAD
会列出已获取但未合并的提交,这是一个有趣的事实,以防您发现自己只需要查看已获取的提交。
另一个: ellotheth 在他们的评论中的链接似乎有一个解决方案,甚至可以与拉动一起使用。它似乎可以使用git diff
,但也许git log ORIG_HEAD..
或类似的也可以吗?
...尽管如此,使用fetch
andmerge
而不是pull
实际上可能是明智的做法,特别是如果您假设您不一定要立即或根本不合并所有提交。
我认为
git log --topo-order
应该管用。
它应该按照它们到达当前分支的顺序显示日志条目——而不是时间顺序。
我会推迟你
git help log
查看可能对您的案件有帮助的选项。也许你想要这个--first-parent
选项?
我个人经常这样做:
git log -n 5 --oneline
如果您只对特定分支感兴趣(例如,master
),您可以在输出中git fetch
使用具有该分支名称的行:
6ec1a9c..91f6e69 master -> origin/master
并用它来构造一个git log
命令
git log --graph --decorate 6ec1a9c..91f6e69
这两个句点的意思是“在第二个提交(原点/主)中但不在第一个(主)中的所有提交”,这就是您要查找的内容。
首先调用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)