central存储库必须在新服务器上设置,因此我在本地存储库上创建了一个新的远程,并推送到该存储库。
central
但是现在当我做git pull时,它声称我是最新的。这是错误的-它告诉我的远程分支,而不是新的分支,我知道事实上有新的提交要获取。
git pull
如何更改本地分支以跟踪不同的远程?
我可以在git配置文件中看到这一点,但我不想把事情搞砸。
[branch "master"]remote = oldservermerge = refs/heads/master
如果你对此保持理智,编辑配置文件就足够安全了。如果你想更偏执一点,你可以使用瓷器命令来修改它:
git config branch.master.remote newserver
当然,如果您查看之前和之后的配置,您会发现它确实完成了您要做的事情。
但在你个人的情况下,我会做的是:
git remote rename origin old-origingit remote rename new-origin origin
也就是说,如果新服务器将是规范的远程服务器,为什么不将其称为源服务器,就好像您最初是从它克隆的一样?
您可以删除当前分支并执行:
git branch --track local_branch remote_branch
或者在配置中将远程服务器更改为当前服务器
git branch branch_name --set-upstream-to your_new_remote/branch_name
-u
git branch branch_name -u your_new_remote/branch_name
git branch --set-upstream branch_name your_new_remote/branch_name
git fetch origingit checkout --track -b local_branch_name origin/branch_name
或
git fetchgit checkout -b local_branch_name origin/branch_name
对我来说,修复是:
git remote set-url origin https://some_url/some_repo
然后:
git push
对于up to dategit(2.5.5),命令如下:
git branch --set-upstream-to=origin/branch
这将更新当前本地分支的远程跟踪分支
对正在发生的事情进行大量控制的另一种选择是手动编辑您的配置:
git config --edit
或速记
git config -e
然后随意编辑文件,保存并应用您的修改。
根据我对最新git留档的理解,概要是:
git branch -u upstream-branch local-branchgit branch --set-upstream-to=upstream-branch local-branch
这种用法似乎与urschrei的回答有点不同,因为在他的概要中是:
git branch local-branch -u upstream-branchgit branch local-branch --set-upstream-to=upstream-branch
我猜他们又改留档了?
这是最简单的命令:
git push --set-upstream <new-origin> <branch-to-track>
例如,给定命令git remote -v会产生如下内容:
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版本中,例如2.7.4,
git checkout branch_name#要更改跟踪分支的分支名称
git checkout branch_name
git branch --set-upstream-to=upstream/tracking_branch_name#上游-远程名称
git branch --set-upstream-to=upstream/tracking_branch_name
我发现@陈志立的帖子很有用,除了我必须在GIT 2.21中执行这些命令:
$ git remote set-url origin https://some_url/some_repo$ git push --set-upstream origin master
最简单的方法是简单地推送到新分支:
git push-u来源分支名称
在尝试了上述操作并搜索、搜索等之后,我意识到我的更改都不在我本地分支上的服务器上,而Team Explorer中的Visual Studio并未指示此分支跟踪了远程分支。远程分支在那里,所以它应该可以工作。我最终删除了github上的远程分支,并重新推送了我的本地分支,其中包含我的更改,但由于未知原因没有被跟踪。
通过删除远程分支并“重新”推送未被跟踪的本地分支,在git hub上重新创建了本地分支。我在命令提示符下尝试此操作(使用Windows),直到我这样做,我才能让我的本地分支跟踪远程分支。一切都恢复正常。
基于git留档的最佳方法是:
远程删除
git远程设置url来源
其中url存储库与我们从克隆选项获得的URL相同。
我尝试了很多解决方案,但这个解决方案对我来说适用于从比特桶到Azure Devops迁移: