正如我所看到的,git --track和--set-upstream-to修改分支都是因为它成为跟踪(或上游)分支.但是,我无法理解的细微差别在哪里.该--track记录的"远程分支跟踪本地":
$ git checkout foo -b
$ git branch --track origin/retarget
Branch origin/retarget set up to track local branch foo.
$ cat .git/config
[branch "origin/retarget"]
remote = .
merge = refs/heads/foo
Run Code Online (Sandbox Code Playgroud)
虽然--set-upstream-to记录"本地分支追踪远程分支":
$ git checkout foo -b
$ git branch --set-upstream-to origin/retarget
Branch foo set up to track remote branch retarget from origin.
$ cat .git/config
[branch "foo"]
remote = origin
merge = refs/heads/retarget
Run Code Online (Sandbox Code Playgroud)
这两者有什么区别?我确信"跟踪分支"是一个简单的概念,upstream在分支内部追加指针,跟踪存储库head中指定分支的位置remote.但似乎它要复杂得多吗?
这种情况是我在远程服务器上没有存储库,只有一个帐户。然后,我在本地运行以下命令,其中x是用户名,y是仅存在于我的本地系统上的项目名称。
git init
git remote add buckety https://x@bitbucket.org/x/y.git
git add .
git commit --message "Here we go..."
git push buckety
Run Code Online (Sandbox Code Playgroud)
现在我收到错误提示我设置远程上游。我可以这样做(--set-upstream或者-u),但是根据我的 googlearching,它已被弃用。(实际上很奇怪,控制台中的建议仍然提到它。)
我想以正确的方式做到这一点,并且我已经搜索了--track和--set-upstream-to。但是,就我所见,我在 Git 上的特定场景没有示例,并且我测试的操作因错误而失败。
我应该如何在不撤回使用已弃用选项的情况下创建远程分支?我可能想在远程创建一个跟踪分支,以便:
最好,我想在推送之前配置它,但我不确定如何配置。我无法使用结帐,因为该分支尚不存在。出于同样的原因,我不能使用set-upstream-to。