首页 > 解决方案 > 如何从git中删除的分支分支

问题描述

我认为我在 git 工作流程方面犯了一个错误。我做了以下事情:

  1. 开发分支分支到分支foo
  2. 创建了一个拉取请求 -> 将foo合并到开发中-> foo分支自动删除
  3. 继续在本地的foo分支上工作
  4. 想从开发(尚未拉)分支到新分支,但保留我正在处理的代码

我没有犯任何事情,也没有拉过任何东西。

我该如何解决这个困境?

标签: gitbranch

解决方案


据我了解,您还没有在本地拉开发分支。在这种情况下,您可以通过执行 git checkout 切换到开发分支。

git checkout develop

如果您所做的本地更改与开发分支中的更改不冲突,则结帐将顺利进行。

如果有冲突的更改,则结帐将失败。在这种情况下,您将需要存储您的本地更改,然后将它们弹出回您以后想要的任何分支。

  1. 存储当前的更改
git stash 
  1. 切换到开发和创建新分支(我假设你想这样做)
git checkout develop
git checkout -b your-new-branch
  1. 弹出此分支上的更改
git stash pop

您可能会再次遇到冲突。您可以解决、添加和提交以将其标记为已解决。


关于你的困惑。不要担心从远程删除本地分支。

Even though remote branch is deleted, the branch still exists on the local repo. Rather, given git is distributed VCS, every repo can exist without remote being present and its branches and commits will be present until deleted locally.

You can avoid all the complicated process at top and just do git checkout and it will create a branch from your current commit without giving you any conflict.

When on your current branch which is deleted from remote.

git checkout -b your-new-branch

推荐阅读