如何在分支上首先没有推送git commit消息?
假设我在一个分支上有3个提交" new_branch"
{{1}}
我想执行一个git命令只返回第一个提交消息而不是commit id。 感谢
答案 0 :(得分:1)
如果new_branch
已签出并且远程分支被标记为new_branch
的上游分支(因为您从远程获取它或者在推送时标记为--set-upstream
)这对你有用:
git show --quiet --pretty=%B $(git rev-list @{u}..HEAD | tail -n 1)`
@{u}
引用上游分支,因此rev-list将为您提供本地分支中的所有提交,这些提交不在远程分支中。 tail -n 1
仅为您提供最低(=最早)的那些。 git show
将显示提交,其中--quiet
隐藏差异,--pretty=%B
仅打印该提交的提交消息。
如果未检出new_branch
,您可以将HEAD
替换为new_branch
,将@{u}
替换为对远程分支的引用(例如origin/new_branch
)。如果未配置new_branch
的上游,则后者也会有所帮助。