我的 git 似乎一团糟。
我首先重命名了一个名为分支 Sprint/13/Story/XXX-11
使用这个:
git branch -m Sprint13/Story/XXX-11
这并没有远程重命名它,我的 git status 充满了关于未 merge 和未提取的更改的消息。
所以我想我会删除远程分支,所以我这样做了:
git branch --delete --remotes origin/Sprint/13/Story/XXX-11
现在,当我执行 git status 时,我收到以下消息:
你的分支基于'origin/Sprint/13/Story/XXX-11',但是上游已经没有了。
最佳答案
这是你到目前为止实际做了什么
git branch -m Sprint13/Story/XXX-11
这将 local 分支 Sprint/13/Story/XXX-11
重命名为 Sprint13/Story/XXX-11
然后你做了这个
git branch --delete --remotes origin/Sprint/13/Story/XXX-11
这删除了原始分支的远程 tracking 分支。请注意,此分支实际上是本地的,并且在您每次从远程存储库中 pull 时充当本地分支的同步点。
要解决这个问题,我认为你应该先在本地删除重命名的分支:
git branch -d Sprint13/Story/XXX-11 # delete local new renamed branch
然后以新名称将旧的本地分支推送到远程:
git push origin Sprint/13/Story/XXX-11:Sprint13/Story/XXX-11
现在您可以通过以下方式将此分支下 pull 到本地 Git:
git pull origin Sprint13/Story/XXX-11
在此过程中,Git 还会为您创建一个指向正确位置的本地跟踪分支。
为了清理,您现在可以删除旧的本地分支及其远程副本:
git branch -d Sprint/13/Story/XXX-11 # delete old local branch
git push origin :Sprint/13/Story/XXX-11 # delete old remote branch
关于删除远程分支后 git upstream 消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42037585/