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

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

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

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

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

当前回答

这是最简单的命令:

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

其他回答

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

or

git fetch
git checkout -b local_branch_name origin/branch_name

我尝试了很多解决方案,但从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 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文档,最好的方法是:

确保实际的起始路径:

Git remote -v

然后使用以下命令进行更改:

Git远程set-url源

其中URL -repository与我们从clone选项中获得的URL相同。

我发现@critikaster的帖子很有帮助,除了我必须在GIT 2.21中执行这些命令:

$ git remote set-url origin https://some_url/some_repo
$ git push --set-upstream origin master