删除远程分支后,git 上游消失了



我似乎把我的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删除旧的。

最新更新