我似乎把我的git弄得一团糟。
我首先重命名了一个分支,该分支被命名为分支Sprint/13/Story/XXX-11
使用这个:
git branch -m Sprint13/Story/XXX-11
这并没有远程重命名它,我的 git 状态充满了有关未合并和未拉取更改的消息。
所以我想我会删除远程分支,所以我这样做了:
git branch --delete --remotes origin/Sprint/13/Story/XXX-11
现在,当我执行git状态时,我收到以下消息:
Your branch is based on 'origin/Sprint/13/Story/XXX-11', but the upstream is gone.
这是您到目前为止实际完成的工作
git branch -m Sprint13/Story/XXX-11
这会将本地分支Sprint/13/Story/XXX-11
重命名为 Sprint13/Story/XXX-11
然后你做了这个
git branch --delete --remotes origin/Sprint/13/Story/XXX-11
这将删除原始分支的远程跟踪分支。 请注意,此分支是实际的本地分支,每次从远程存储库拉取时,它都会充当本地分支的同步点。
为了解决这个问题,我认为您应该首先在本地删除重命名的分支:
git branch -d Sprint13/Story/XXX-11 # delete local new renamed branch
然后以新名称将旧的本地分支推送到远程:
git push origin Sprint/13/Story/XXX-11:Sprint13/Story/XXX-11
现在你可以通过以下方式将此分支拉到本地 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 branch -m [<oldbranch>] <newbranch>
因此,您需要确保在重命名之前已签出Sprint/13/Story/XXX-11
。
要确定,请键入完整的重命名命令:
git branch -m Sprint/13/Story/XXX-11 Sprint13/Story/XXX-11
然后,您可以与git branch
检查当前分支是否已重命名。
最后,这不会影响远程跟踪分支。
您需要执行以下操作:
git push -u origin Sprint13/Story/XXX-11
以在远程存储库上创建同名的远程分支。
并git push origin :Sprint/13/Story/XXX-11
删除旧的。