如何通过Git命令行查看默认远程仓库及git push默认推送目标?
Git默认远程仓库相关问题
我的本地Git仓库有两个远程仓库:
$ git remote show origin upstream
我想了解两个技术问题:
- 如何通过Git命令行打印默认远程仓库的名称?
- 当我执行
git push命令时,会默认推送到哪一个远程仓库?
问题1:查看默认远程仓库名称
Git里默认远程仓库和当前分支的上游配置绑定,你可以用以下命令直接获取当前分支对应的默认远程仓库名称:
git config --get branch.$(git rev-parse --abbrev-ref HEAD).remote
这个命令会输出当前分支关联的远程仓库名(比如origin或upstream),如果当前分支未设置上游远程,会返回空值。
另外,也可以查看所有分支的详细关联信息来确认:
git branch -vv
输出结果里,每个分支条目后的[<remote-name>/<branch-name>]部分,其中<remote-name>就是该分支的默认远程仓库。
问题2:git push默认推送的远程仓库
git push的默认推送目标由两部分决定:
- 如果当前分支已经通过
git push -u <remote> <branch>设置过上游远程,那么git push会默认推送到这个上游远程仓库。 - 如果没有设置上游远程,Git会遵循
push.default配置项的规则,Git 2.0及以上版本默认值为simple,此时会默认推送当前分支到origin仓库的同名分支;旧版本可能默认matching,会推送所有本地与远程同名的分支到origin。
你可以用以下命令查看当前push.default的配置:
git config --get push.default
同样,问题1中的git config --get branch.<current-branch>.remote命令结果,就是当前分支执行git push时默认推送的远程仓库。
内容的提问来源于stack exchange,提问作者Daniel Kaplan
相关产品推荐
相关产品推荐

