中央存储库必须设置在一个新的服务器上,所以我在本地回购上创建了一个新的远程存储库,并将其推送到该服务器上。

但现在当我做git拉,它声称我是最新的。这是错误的——它告诉我的是旧的远程分支,而不是新分支,我知道新分支实际上有新的提交要获取。

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

我可以在git配置文件中看到这一点,但我不想把事情搞砸。

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

当前回答

在最新的git 2.7.4版本中,

Git checkout branch_name #要更改跟踪分支的分支名称

Git分支——set-upstream-to=upstream/tracking_branch_name #upstream -远程名称

其他回答

我尝试了很多解决方案,但从Bitbucket到Azure Devops Migration,这个解决方案对我来说是有效的:

创建存储库 git clone源URL Git config——global——unset credentials .helper Git配置凭证。辅助存储 Git远程rm来源 git远程添加原始URL到NEW repo Git push origin——全部 以防错误使用 Git push -f origin——all 以防访问或身份错误 去分支——>select分支——>3 dots——>branch security——> allow force push Git push—标签

如果你头脑清醒的话,编辑配置文件是很安全的。如果你想要更偏执一点,你可以使用瓷器命令来修改它:

git config branch.master.remote newserver

当然,如果您查看之前和之后的配置,您将看到它完全按照您要做的做了。

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

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

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

根据我从最新的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 

我猜他们又修改了文件?

在最新的git 2.7.4版本中,

Git checkout branch_name #要更改跟踪分支的分支名称

Git分支——set-upstream-to=upstream/tracking_branch_name #upstream -远程名称

另一个对正在发生的事情有很大控制的选择是手动编辑你的配置:

git config --edit

或者简写

git config -e

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