git - 还原合并还原
问题描述
我以这种方式恢复了合并提交(功能->开发):
git revert -m 1 <merge-commit-hash>
git push origin develop
一个新的提交已经创建Revert "Merge branch 'feature'"
现在我想恢复那个恢复。我应该只使用以下命令:git revert <revert-merge-branch-commit-hash>
?
解决方案
不幸的是,在大多数情况下,答案可能是肯定的。(您应该还原还原提交。)
我说“不幸的是”,因为回想起来,这两个还原一起为您的历史添加了不必要的(并且可能令人困惑的)提交。这里有两种可能的替代方案:
- 重置分支并强制将其推出。这导致更清晰的历史记录,但是对于诸如 的共享远程分支
develop
,条件必须接近完美才能考虑在紧急情况之外执行此操作。(我的意思是近乎完美:分支上没有新的提交,自从添加了错误的提交和/或其他人不太可能从它分支出来之后已经过去了很短的时间,等等。) - 您可以重新创建最初合并的分支,然后使用
git rebase --no-ff [merge-base-commit]
. 这将强制 rebase 重写提交,以便可以重新合并它们。如果新的提交被添加到之前的分支中,我可能会选择这个,现在它已经准备好再次被引入。
但一般来说,大多数时候,在共享遥控器上develop
,它可能会被还原。
推荐阅读
- python - 导入错误:无法导入名称“export_saved_model”
- go - 不了解变量
- ruby-on-rails - 我不知道为什么我无法让 bundle install 正常运行
- c# - 如何在同一个工作区中分别运行多个 C# 文件?
- javascript - 警告:收到非布尔属性 React 的 `false`
- javascript - 如何描述返回数组的函数由 3 个不同类型的元素组成
- jsf - 延迟加载由 primefaces tabview 标签管理的选项卡中的输出面板
- regex - 如何防止 \g 子表达式覆盖 Ruby Regex 中的分组内容
- javascript - 为什么 webpack 5 忽略一个文件中的 NODE_ENV,但读取另一个文件
- c# - 通过变量作为字符串的布尔类型的 NPOI C# SetCellValue()