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

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

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

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

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

当前回答

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

git config --edit

或者简写

git config -e

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

其他回答

这是最简单的命令:

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

经过上面的尝试和搜索,搜索等。我意识到我的任何更改都没有在本地分支的服务器上,并且Team Explorer中的Visual Studio没有指示该分支跟踪远程分支。远程分支在那里,所以它应该工作。我最终删除了github上的远程分支,并're'推送我的本地分支,其中有我的更改,由于未知的原因没有被跟踪。

通过删除远程分支并're' Push未被跟踪的本地分支,本地分支将在git hub上重新创建。我尝试在命令提示符(使用Windows),我不能让我的本地分支跟踪远程分支,直到我这样做。一切都恢复正常了。

根据git文档,最好的方法是:

确保实际的起始路径:

Git remote -v

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

Git远程set-url源

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

对于最新的git(2.5.5),命令如下:

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

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

在最新的git 2.7.4版本中,

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

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