如何判断Git分支是从远程拉取还是本地创建未推送?
无需切换master分支判断Git分支来源的方法
下面是几种高效实现方案,全程不需要切换到master或其他分支:
- 方法1:查看全部分支的上游跟踪状态
执行命令:git branch -vv
输出结果中,分支对应条目后方带[远程仓库名/远程分支名]标记的,说明该分支已经绑定远程上游,要么是从远程fetch后检出的,要么是本地创建后已经推送过并绑定了上游;没有对应[]标记的分支,就是本地创建且尚未推送至远程的分支。
示例输出说明:dev a1b2c3d [origin/dev: ahead 1] 修复登录逻辑bug
test e4f5g6h 新增测试脚本
上述输出中dev分支绑定了远程上游,test分支为未推送的本地分支。 - 方法2:单独查询指定分支的上游配置
如果你只需要查询单个分支,不需要列出所有分支,可以执行命令:git config branch.<你要查询的分支名>.remote
执行后如果有origin之类的远程仓库名输出,说明该分支绑定了远程上游;无任何输出则说明是未推送的本地分支。 - 方法3:直接查询远程仓库是否存在对应分支
如果你担心本地的远程分支引用不是最新的,可以直接访问远程仓库查询,命令:git ls-remote --heads origin <你要查询的分支名>
有对应哈希值输出说明远程存在该分支,无输出说明该分支尚未推送到远程。
内容的提问来源于stack exchange,提问作者Noel Yap
相关产品推荐
相关产品推荐

