将本地分支推送到远程WITHOUT --set-upstream参数后,我发现已跟踪远程分支,但是本地分支没有上游分支。跟踪和上游不是同一意思吗?如果没有,有什么区别?(git版本2.27.0.windows.1)
创建分支
$ git分支测试
将本地分支推送到远程
$ git checkout测试
$ git push起源测试
推动更改,但看起来根本没有上游。
$ git push
严重:当前分支测试没有上游分支。 要推送当前分支并将远程设置为上游,请使用 git push --set-upstream原始测试
跟踪和上游之间有什么区别?我不了解当前状态:跟踪了远程分支,但本地分支没有上游。
答案 0 :(得分:2)
您显示的命令是git remote show
的输出。
请参阅@torek的说明:
“git remote show origin”: why all branches show “tracked” even when some aren't?
此命令“已跟踪”,意味着该分支将下载到本地origin/*
引用(注意:文档中未明确说明,并且确实具有误导性)。
如果您想查看“哪个本地分支跟踪哪个远程分支”:
使用git branch -vv
,或检查.git/config
(git config -l | grep branch
或git config --get-regexp '^branch\.'
)的内容
答案 1 :(得分:1)
tl; dr::您的 local 分支尚未跟踪远程站点,但您的 remote 副本正在跟踪源分支。
详细信息:
有3个水桶:
将您的本地分支设置为“跟踪”上游分支将链接#1和#2。从遥控器的角度来看,“已跟踪”表示#2存在并链接到#3。
在命令上下文中:
git remote show origin
“已跟踪”表示您在远程副本中具有该分支的副本。请注意,如果其他人添加了分支并且您尚未提取该分支,则将看到“新”而不是“已跟踪”。首次推出本地分支时,您的 remote 分支开始跟踪原始分支,但是您没有将本地副本设置为跟踪远程分支。如果您完成了“ push -u”操作,您还将把上游跟踪分支设置为远程跟踪。