如何更改git分支正在跟踪的远程?

central仓库必须build立在一个新的服务器上,所以我在本地仓库上创build了一个新的远程服务器,并将其推向了这个位置。

但现在当我做git pull ,它声称我是最新的。 这是错误的 – 它告诉我关于旧的远程分支,而不是新的,我知道一个事实有新的提交提取。

如何更改我的本地分支以跟踪不同的远程?

我可以在gitconfiguration文件中看到这个,但我不想搞砸了。

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

不删除任何东西,使用git v1.8.0或更高版本:
git branch branch_name --set-upstream-to your_new_remote/branch_name

或者你可以使用-u开关:
git branch branch_name -u your_new_remote/branch_name

使用git v1.7.12
git branch --set-upstream branch_name your_new_remote/branch_name

对我来说修复是:

 git remote set-url origin https://some_url/some_repo 

然后:

 git push 

如果你理解它,编辑configuration文件的安全就够了。 如果你想多一点偏执狂,你可以使用瓷器命令来修改它:

 git config branch.master.remote newserver 

当然,如果你看看前后的configuration,你会发现它确实做了你要做的事情。

但在你个人的情况下,我会做的是:

 git remote rename origin old-origin git remote rename new-origin origin 

也就是说,如果新的服务器将成为规范的远程服务器,为什么不把它称为原来的,就像你最初从中克隆的那样?

使用最新的git(2.5.5)命令如下:

 git branch --set-upstream-to=origin/branch 

这将更新当前本地分支的远程追踪分支

另一个对所发生事情有很大控制的选项是手动编辑你的configuration:

 git config --edit 

或简写

 git config -e 

然后随意编辑文件,保存和修改将被应用。

你可以删除你当前的分支,并做:

 git branch --track local_branch remote_branch 

或者将更改远程服务器更改为configuration中的当前服务器

 git fetch origin git checkout --track -b local_branch_name origin/branch_name 

要么

 git fetch git checkout -b local_branch_name origin/branch_name 

根据我从最新的git 文档中所了解的内容 ,大纲是:

 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 

我猜他们又改了文件?