繁体   English   中英

如何在git中撤消跟踪远程分支?

[英]How do I undo tracking a remote branch in git?

我不小心从跟踪原点大师那里意外地取消了我的主分支。 以前我可以运行git pullgit push ,它会知道我的意思是git push origin master但现在它没有,我认为它跟踪不同的分支,因为git push origin master工作正常(一切都是最新的)和git push告诉我它不能快进变化。

这是我的git branch -a样子:

ianstormtaylor:nib Storm$ git branch -a
* master
  original
  transforms
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/sizing
  remotes/origin/transforms

不确定remotes/origin/HEAD -> origin/master是否是混乱的部分。

我认为这一切都源于git merge origin sizing调用,当我打算进行git merge sizing (在master上)。

任何人都知道发生了什么,并能够提供帮助吗? 我只想回到git clone创建的默认远程跟踪设置。

您需要的所有Git配置(执行git config -e编辑)如下:

[remote "origin"]
   fetch = +refs/heads/*:refs/remotes/origin/*
   url = /Users/me/test.git
[branch "master"]
   remote = origin
   merge = refs/heads/master

如果它存在, git push从master,将相当于git push origin master

remotes/origin/HEAD -> origin/master部分只是说远程原点的HEAD是主分支(原点)并且很好。

我已经发生了几次这种情况 - 虽然我不确定确切的原因,但我不相信这是因为你犯了一个错误。 相反,它只是git pull是最近一个远程分支的快捷方式 ,它忘记了最新的分支是什么。

执行git pull origin master通常会更新设置并重置所有内容。

我想你可以编辑.git / config文件或使用设置配置

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

或者,使用-t (-- --tracking )选项重新创建主分支

两者都应该导致.git/config此类似的部分:

[branch "master"]
    remote = origin
    merge = refs/heads/master

您可以使用

git branch --set-upstream my_branch origin / my_branch

另外

git push -u origin my_branch

请参阅Git:为什么我需要一直进行--set-upstream 了解更多细节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM