如何从 git 中删除的分支分支
How to branch from deleted branch in git
我认为我的 git 工作流程有误。我做了以下事情:
- 从 develop 分支到分支 foo
- 创建了一个拉取请求 -> 自动将 foo 合并到 develop -> foo 分支已删除
- 继续在 foo 本地分支上工作
- 想从 develop(还没有拉)到新分支,但保留我正在处理的代码
我什么都没犯,也没拉什么
我该如何解决这个困境?
据我了解,您还没有在本地拉取 develop 分支。在这种情况下,您可以通过 git checkout 切换到 develop 分支。
git checkout develop
如果您所做的本地更改与开发分支中的更改不冲突,则结帐将很顺利。
如果更改存在冲突,则结帐将失败。在这种情况下,您将希望存储本地更改,然后将它们弹出回您以后想要的任何分支。
- 存储当前更改
git stash
- 切换到开发和创建新分支(我假设你想这样做)
git checkout develop
git checkout -b your-new-branch
- 弹出此分支上的更改
git stash pop
您可能会再次遇到冲突。您可以解决、添加并提交以将其标记为已解决。
关于你的困惑。不要担心本地分支被远程删除。
即使删除了远程分支,该分支仍然存在于本地仓库中。相反,鉴于 git 是 分布式 VCS,每个 repo 都可以存在而无需远程存在,并且其分支和提交将存在直到在本地删除。
您可以避免顶部的所有复杂过程,只需执行 git checkout,它将从您当前的提交创建一个分支,而不会给您带来任何冲突。
当在您当前的分支上时,该分支已从远程删除。
git checkout -b your-new-branch
我认为我的 git 工作流程有误。我做了以下事情:
- 从 develop 分支到分支 foo
- 创建了一个拉取请求 -> 自动将 foo 合并到 develop -> foo 分支已删除
- 继续在 foo 本地分支上工作
- 想从 develop(还没有拉)到新分支,但保留我正在处理的代码
我什么都没犯,也没拉什么
我该如何解决这个困境?
据我了解,您还没有在本地拉取 develop 分支。在这种情况下,您可以通过 git checkout 切换到 develop 分支。
git checkout develop
如果您所做的本地更改与开发分支中的更改不冲突,则结帐将很顺利。
如果更改存在冲突,则结帐将失败。在这种情况下,您将希望存储本地更改,然后将它们弹出回您以后想要的任何分支。
- 存储当前更改
git stash
- 切换到开发和创建新分支(我假设你想这样做)
git checkout develop
git checkout -b your-new-branch
- 弹出此分支上的更改
git stash pop
您可能会再次遇到冲突。您可以解决、添加并提交以将其标记为已解决。
关于你的困惑。不要担心本地分支被远程删除。
即使删除了远程分支,该分支仍然存在于本地仓库中。相反,鉴于 git 是 分布式 VCS,每个 repo 都可以存在而无需远程存在,并且其分支和提交将存在直到在本地删除。
您可以避免顶部的所有复杂过程,只需执行 git checkout,它将从您当前的提交创建一个分支,而不会给您带来任何冲突。
当在您当前的分支上时,该分支已从远程删除。
git checkout -b your-new-branch