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

时间:2012-01-24 22:25:07

标签: git version-control github

我认为我不小心从跟踪原点大师那里解开了我的主分支。以前我可以运行git pullgit push,它会知道我的意思是git push origin master,但现在却没有,我认为它正在追踪一个不同的分支,因为{{1}工作正常(一切都是最新的)和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创建的默认远程跟踪设置。

4 个答案:

答案 0 :(得分:3)

您需要的所有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

如果它在那里,来自master的git push将等同于git push origin master

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我想您可以编辑.git / config文件或使用

设置配置
git config branch.master.remote origin
git config branch.master.merge refs/heads/master

或者,使用-t--tracking)选项

重新创建主分支

两者都应在.git/config中生成与 this 类似的部分:

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

答案 3 :(得分:1)

您可以使用

  

git branch --set-upstream my_branch origin / my_branch

可选地

  

git push -u origin my_branch

有关详细信息,请参阅Git: Why do I need to do --set-upstream all the time?