删除远程分支后 git upstream 消失了

标签 git

我的 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/

相关文章:

git - 远程 ssh session 期间的本地 git 配置

git - 如果没有新的提交,是否可以在 git 中查看谁 merge 了分支?

git - 将多个孤立分支 merge 为一个分支

git - 为什么 git checkout FILE 不重新应用未提交的更改?

git difftool 持有 shell

git - 在单个压缩窗口中比较多个文件的差异

git - 为什么 git 会询问用户的电子邮件地址?

web-services - 用于个人 Git 服务器 repo 的 Web API(如 github REST API)启用 "git log"?

git - Heroku-上载SSH公钥失败

git - BFG Repo Cleaner - 已删除的文件仍在提交更改中