必须在新服务器上设置central
存储库,因此我在本地存储库上创建了一个新的远程控制器,并将其推送到该服务器。
但现在当我git pull
时,它声称我是最新的。这是错误的 - 它告诉我关于旧远程分支,而不是新分支,我知道事实上有新的提交提取。
如何更改本地分支以跟踪其他遥控器?
我可以在git配置文件中看到这个,但我不想搞砸了。
[branch "master"]
remote = oldserver
merge = refs/heads/master
答案 0 :(得分:881)
git branch branch_name
--set-upstream-to
your_new_remote/branch_name
-u
开关: git branch branch_name
-u
your_new_remote/branch_name
git branch --set-upstream branch_name your_new_remote/branch_name
答案 1 :(得分:75)
对我而言,修复是:
git remote set-url origin https://some_url/some_repo
然后:
git push
答案 2 :(得分:30)
使用最新的git(2.5.5)命令如下:
git branch --set-upstream-to=origin/branch
这将更新当前本地分支的远程跟踪分支
答案 3 :(得分:18)
如果你对此有所了解,编辑配置文件就足够安全了。如果你想变得更偏执,你可以使用瓷器命令来修改它:
git config branch.master.remote newserver
当然,如果您在之前和之后查看配置,您会发现它确实完成了您要执行的操作。
但在你的个案中,我要做的是:
git remote rename origin old-origin
git remote rename new-origin origin
也就是说,如果新服务器将成为规范的远程服务器,为什么不将其称为原始服务器,就好像您最初克隆它一样?
答案 4 :(得分:17)
对发生的事情有很多控制权的另一个选择是手动编辑配置:
git config --edit
或简写
git config -e
然后随意编辑文件,保存并修改您的修改。
答案 5 :(得分:7)
git fetch origin
git checkout --track -b local_branch_name origin/branch_name
或
git fetch
git checkout -b local_branch_name origin/branch_name
答案 6 :(得分:4)
您可以删除当前分支并执行:
git branch --track local_branch remote_branch
或者将远程服务器更改为配置
中的当前服务器答案 7 :(得分:4)
这是最简单的命令:
git push --set-upstream <new-origin> <branch-to-track>
例如,假设命令git remote -v
产生类似的东西:
origin ssh://git@bitbucket.some.corp/~myself/projectr.git (fetch)
origin ssh://git@bitbucket.some.corp/~myself/projectr.git (push)
team ssh://git@bitbucket.some.corp/vbs/projectr.git (fetch)
team ssh://git@bitbucket.some.corp/vbs/projectr.git (push)
改为跟踪团队:
git push --set-upstream team master
答案 8 :(得分:2)
根据我对最新git documentation的理解,概要是:
git branch -u upstream-branch local-branch
git branch --set-upstream-to=upstream-branch local-branch
这种用法似乎与urschrei的答案略有不同,因为在他的概要中是:
git branch local-branch -u upstream-branch
git branch local-branch --set-upstream-to=upstream-branch
我猜他们又改变了文档?
答案 9 :(得分:1)
在最新的git版本中,例如 2.7.4 ,
git checkout branch_name
#您要更改跟踪分支的分支名称
git branch --set-upstream-to=upstream/tracking_branch_name
#上游-远程名称
答案 10 :(得分:1)
我发现@critikaster的帖子很有帮助,除了我必须在GIT 2.21上执行以下命令:
$ git remote set-url origin https://some_url/some_repo
$ git push --set-upstream origin master
答案 11 :(得分:0)
最简单的方法是简单地推送到新分支:
git push -u原始分支/名称
答案 12 :(得分:0)
尝试上述操作并进行搜索,搜索等后,我意识到我的更改均未在本地分支上的服务器上进行,并且Team Explorer中的Visual Studio并未指示该分支跟踪了远程分支。远程分支在那里,所以它应该可以工作。我最终删除了github上的远程分支,并“推”我的本地分支,该分支的更改由于未知原因而未被跟踪。
通过删除远程分支并“重新”推送未跟踪的本地分支,可以在git hub上重新创建本地分支。我尝试在命令提示符下(使用Windows)执行此操作,直到执行此操作,我才能让本地分支跟踪远程分支。一切恢复正常。
答案 13 :(得分:0)
基于git文档的最佳方法是:
git remote -v
git remote set-url origin
其中url-repository是我们从clone选项获得的相同URL。