You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从master创建分支后,未设置上游如何执行git push?

如何在未设置上游分支的情况下执行Git Push操作

这问题我日常用Git时碰到过好几次,其实核心在于Git的推送配置和手动指定推送目标两种玩法,下面给你讲得明明白白:

为什么你能push但没跟踪远程分支?

你之前用git push成功推送了general分支,但git branch -vv没显示跟踪关系,是因为你的Git配置里push.default可能设成了current或者matching(不过现在默认更多是simple,但如果是current的话就会允许这种操作)。这个配置会让Git自动把当前本地分支推送到远程仓库的同名分支,但不会自动建立本地分支和远程分支的跟踪关联——跟踪关系必须通过-u参数来触发设置。

两种未设置上游时的Push方法

1. 手动指定远程和分支(最直观的临时操作)

如果你只是临时推一次未关联上游的分支,直接在push命令里明确指定远程仓库和分支对应关系就行:

git push <远程仓库名> <本地分支名>:<远程分支名>

比如你的场景里,远程仓库是默认的origin,分支都是general,那命令就是:

git push origin general:general

这样Git就会把本地general分支的内容推送到远程origin/general分支,全程不会设置上游跟踪。

2. 修改Git配置实现简化推送(适合长期习惯)

如果你经常需要推送未设置上游的分支,不想每次都打长命令,可以修改push.default的配置为current:

# 全局生效(所有仓库都适用)
git config --global push.default current

# 仅当前仓库生效
git config push.default current

设置之后,只要你在本地分支上执行git push,Git就会自动把当前分支推送到远程的同名分支,而且同样不会建立跟踪关系——这就是你之前操作成功的原因。

补充:什么时候需要设置上游?

如果之后你想通过git pull自动拉取对应远程分支的内容,或者让git status显示本地分支和远程分支的差异,那才需要用git push -u origin general或者git branch -u origin/general来建立跟踪关联。如果只是单纯推送代码,上面两种方法完全够用。

内容的提问来源于stack exchange,提问作者Unknown developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:44:44