如何在无上游分支时查看当前分支的本地Git提交?
查看当前分支本地提交的解决方案
下面给你几个实用的方法,不管当前分支有没有设置上游分支都能用:
方法一:Shell 条件判断命令
直接在终端执行这条命令,它会自动检测当前分支是否有上游,然后对应执行正确的日志查询:
if git rev-parse --abbrev-ref @{u} >/dev/null 2>&1; then git log @{u}..HEAD; else git log --not --remotes HEAD; fi
- 原理:
git rev-parse --abbrev-ref @{u}会尝试获取当前分支的上游分支,成功就说明有上游,执行你原来的对比逻辑;失败就说明没有上游,用--not --remotes HEAD筛选出当前分支中所有未出现在远程仓库的提交。
方法二:配置 Git 别名(推荐)
把上面的逻辑做成 Git 别名,以后用起来更方便:
- 打开终端,执行这条命令添加全局别名:
git config --global alias.local-log '!f() { if git rev-parse --abbrev-ref @{u} >/dev/null 2>&1; then git log @{u}..HEAD; else git log --not --remotes HEAD; fi; }; f'
- 之后只要输入
git local-log,就能一键查看当前分支的本地提交了。
补充说明
如果你想要的是当前分支独有的提交(不管是否推送到远程,仅当前分支存在、其他本地分支没有的提交),可以用这条命令:
git log HEAD --not $(git for-each-ref --format='%(refname)' refs/heads | grep -v $(git branch --show-current))
内容的提问来源于stack exchange,提问作者tiny_mike
相关产品推荐
相关产品推荐

