当我使用“git branch”时,是否可以显示最新的提交?

时间:2012-07-17 13:58:23

标签: git commit

所以,在每个分支上,如果我执行“git log”或“git lg”,它将显示已完成的提交列表。

现在,当我输入“git branch -arg”时,有没有办法在每个分支上显示最新的提交?我发现检查每个分支然后使用“git log”检查提交有点烦人/乏味。

3 个答案:

答案 0 :(得分:10)

git branch -v列出了分支名称以及每个分支上最新提交的SHA和提交消息。

请参阅git branch manual page

答案 1 :(得分:4)

是的,您可以添加一个结帐后挂钩(described here)。

基本上,创建.git/hooks/post-checkout文件并放入要在其中运行的任何git命令,最后确保使该文件可执行(chmod +x .git/hooks/post-checkout在类似unix的系统上,例如Mac OS ,GNU / Linux等)。

例如,如果您将git show放在该文件中,它会自动显示上次提交以及切换分支时所做的更改。

答案 2 :(得分:1)

有多个git log参数可以控制其输出:

--branches--glob--tag--remotes一样,选择要显示的提交,--no-walk以避免显示他们的所有历史记录(只是他们的提示为你想要),--oneline只显示提交日志的第一行,--decorate--color=always添加更多的眼睛:D

尝试以下命令:

$ # show the first line of the commit message of all local branches
$ git log --oneline --decorate --color=always --branches --no-walk

$ # show the whole commit message of all the branches that start with "feature-"
$ git log --decorate --color=always --branches='feature-*' --no-walk

$ # show the last commit of all remote and local branches 
$ git log --decorate --color=always --branches --remotes --no-walk

$ # show the last commit of each remote branch
$ git fetch
$ git log --decorate --color=always --remotes --no-walk
顺便说一句,没有必要切换分支以查看其他分支的提交:

$ # show the 'otherbranch' last commit message
$ git log --decorate --color=always -n 1 otherbranch

$ # show a cool graph of the 'otherbranch' history
$ git log --oneline --decorate --color=always --graph otherbranch