如何更改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
我猜他们又改了文件?