从错误的分支和合并创建分支后恢复的最佳方法

时间:2017-09-18 16:53:48

标签: git atlassian-sourcetree

我意识到有关此主题的类似问题;我担心我没有抓住最好的方式从这种情况中恢复过来。我在Windows上使用SourceTree。

我从dev分支,对一些文件做了一些提交,推送到远程,并合并回dev。事实证明,开发中存在许多预先存在的提交,这些提交不会随时被提升为主人,而我真的应该从主人那里分支。

所以我从master那里开了一个新的分支,然后我从原来的分支中挑选出了我知道很好的提交。一个问题是我最初修改的两个文件在新分支中会有不同的变化。

但是,我不确定如何最好地处理将dev分支重置回我之前进行的两次合并之前的状态的过程。我应该:

  • 检查第一个分支,硬重置到最初分支的位置,提交这些更改,推送到远程,并合并?
  • 或者,检查第一个分支,在每个受影响的文件上选择Log Selected,将每个文件重置为先前的提交,提交所有更改,推送,合并?
  • 还是其他什么?

这是图表。最左边的分支是dev的原始分支。下一个分支是来自master的新分支,具有樱桃选择的提交。蓝线是我要将dev重置为的提交。谢谢! enter image description here

1 个答案:

答案 0 :(得分:1)

鉴于 NO ONE 已从远程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