如何制作主分支轨道?

Mal*_*lio 9 git

我克隆了一个存储库,并在master分支中工作.有一个一致的问题:(git pushgit push)没有工作,并给出了长期,无法解释的错误信息.通过反复试验,我发现git push origin master推送正确.但现在我注意到一些奇怪的事情:

$ git config push.default tracking
$ git push
fatal: The current branch master is not tracking anything.
Run Code Online (Sandbox Code Playgroud)

WTF?我想如果你克隆了一个存储库,那么就会自动跟踪主服务器.无论如何,我真正的问题是

  1. 我该如何创建克隆以便跟踪分支?
  2. 没有跟踪的后果(除了当前)有什么影响?
  3. 如何修复当前情况,以便我的分支跟踪遥控器?

编辑 我的本地存储库在其他方面表现得很奇怪; 最值得注意的是:我无法创建远程分支.我把它放在一边,做了一个新的克隆,它以新鲜的方式表现得很奇怪.

首先master是跟踪(是的).其次,我能够建立一个远程分支,但这很奇怪.

Ratatouille $ git push origin origin:refs/heads/premium
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:gamecrush/Ratatouille.git
 * [new branch]      origin/HEAD -> premium
Ratatouille $ git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/premium
Run Code Online (Sandbox Code Playgroud)

当然,料理鼠王是远程回购的名称.奇怪的一点:那是->为了什么?它似乎是新的,并没有显示旧的本地回购或遥控器的其他克隆.

但现在分支和跟踪工作正如所宣传的那样.

Arr*_*ter 23

你的branch.autosetupmerge设定是什么?默认情况下,它应该在您克隆时设置分支跟踪.

尝试使用此设置分支的上游以使分支跟踪远程.

git branch --set-upstream master origin/master
Run Code Online (Sandbox Code Playgroud)

  • `--set-upstream`标志现已弃用.首选`--set-upstream-to`或`--track` (3认同)

小智 6

另一种方法:在第一次执行推送期间将主设备设置为跟踪遥控器:

git push -u origin master
Run Code Online (Sandbox Code Playgroud)

-u会做的一样--set-upstream.之后,运行git branch -vv以查看包括其跟踪分支在内的分支列表.


Art*_*ero 6

其他选择:

git branch --set-upstream-to=origin/master
Run Code Online (Sandbox Code Playgroud)