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

我必须在新服务器上设置'中心'存储库,因此,在本地存储库上创建了一个新的远程数据库,并将它推送到该服务器。

但是,现在当我做"git pull"时,它声称我是最新的。这是错的 - 它告诉我关于旧的远程分支,而且不是新的远程分支,我知道事实上有新的提交可以提取。

如何更改本地分支以跟踪其他远程分支?

我可以在git配置文件中看到这个,但是,我不想把事情搞乱。


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

时间:

不用删除任何东西,使用git更新到v1.7.12:
git branch --set-upstream branch_name your_new_remote/branch_name

使用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 config branch.master.remote newserver

当然,如果你在之前和之后,去查看配置,你会发现它确实完成了你要做的事情。

但在你的情况下,要做的是:


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

也就是说,如果新服务器将成为规范的远程服务器,为什么不将它称为原始服务器,就像您最初克隆它一样?

你可以删除当前分支,并且执行以下操作:


git branch --track local_branch remote_branch

或者更改远程服务器到配置中的当前服务器,


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

或者


git fetch
git checkout -b local_branch_name origin/branch_name

...