从错误的分支创建分支并合并后恢复的最佳方法
Best way to recover after creating branch from wrong branch and merging
我知道有关于此主题的类似问题;恐怕我没有掌握从这种情况中恢复过来的最佳 方法。我在 Windows.
上使用 SourceTree
我从 dev 分支,对少数文件进行了一些提交,推送到远程,然后合并回 dev。事实证明,dev 中有许多预先存在的提交不会很快被提升为 master,我真的应该从 master 分支出来。
所以我从 master 创建了一个新分支,然后我从我知道好的原始分支中挑选了提交。一个问题是,我最初修改的两个文件在新分支中会有不同的更改。
但是,我不确定如何最好地处理将开发分支重置回我进行的两次合并之前的状态的过程。我应该:
- 检查第一个分支,将其硬重置到最初分支的位置,提交这些更改,推送到远程,然后合并?
- 或者,检查第一个分支,在每个受影响的文件上记录选择,将每个文件重置为之前的提交,提交所有更改,推送,合并?
- 还是别的?
这是图表。最左边的分支是来自 dev 的原始分支。下一个分支是来自 master 的新分支,带有精心挑选的提交。蓝线是我想将 dev 重置回的提交。谢谢!
鉴于 没有人 已经从远程 develop
分支中提取,您需要做的就是覆盖提交分支 develop
的内容指向并按照这些命令执行此操作:
# Change your local develop to point that old version of that branch
git checkout -B develop <commit-hash-of-blue-line-in-pic>
# FORCE push your local develop to the remote develop
git push origin -f develop
我知道有关于此主题的类似问题;恐怕我没有掌握从这种情况中恢复过来的最佳 方法。我在 Windows.
上使用 SourceTree我从 dev 分支,对少数文件进行了一些提交,推送到远程,然后合并回 dev。事实证明,dev 中有许多预先存在的提交不会很快被提升为 master,我真的应该从 master 分支出来。
所以我从 master 创建了一个新分支,然后我从我知道好的原始分支中挑选了提交。一个问题是,我最初修改的两个文件在新分支中会有不同的更改。
但是,我不确定如何最好地处理将开发分支重置回我进行的两次合并之前的状态的过程。我应该:
- 检查第一个分支,将其硬重置到最初分支的位置,提交这些更改,推送到远程,然后合并?
- 或者,检查第一个分支,在每个受影响的文件上记录选择,将每个文件重置为之前的提交,提交所有更改,推送,合并?
- 还是别的?
这是图表。最左边的分支是来自 dev 的原始分支。下一个分支是来自 master 的新分支,带有精心挑选的提交。蓝线是我想将 dev 重置回的提交。谢谢!
鉴于 没有人 已经从远程 develop
分支中提取,您需要做的就是覆盖提交分支 develop
的内容指向并按照这些命令执行此操作:
# Change your local develop to point that old version of that branch
git checkout -B develop <commit-hash-of-blue-line-in-pic>
# FORCE push your local develop to the remote develop
git push origin -f develop