【发布时间】:2020-03-30 11:29:47
【问题描述】:
查看在处理分支、标签等时在 Git 中恢复或重置的所有方法......我以为我掌握了它,但它变得令人困惑。
那么我需要执行以下操作的最简单的命令序列是什么?
- 通过拉取请求将主分支恢复到较早的状态。据推测,我会创建一个功能分支,将其还原,然后通过拉取请求合并它。 (此还原包括还原之前的合并。)
- 在功能分支中进行进一步更改。不确定我是否在之前和之后合并到 master 之后,或者仅在之后的步骤是否重要。
- 推送然后合并到主服务器(通过拉取请求将其进入主服务器,在 Git 之外)
- 然后恢复我在第 1 步中回滚的后续更改,解决所有冲突,并保留第 2-3 步中的更改。
我从git --no-commit revert commit-after-the-tag..HEAD 开始,但现在我担心恢复更改没有简单的方法,因为我的恢复提交将比我想要恢复的更改更新。 (另外,由于要还原的代码包含合并,所以我无法还原。)
所以我想我想恢复到一个标签,进行进一步的更改,然后恢复所有后续恢复的更改。我该怎么做?
【问题讨论】:
-
还原还原。您的第 1 步还原将添加另一组提交,以恢复这些更改,稍后再还原它们。
-
但是恢复revert并保留所有“最新”更改也可以吗?
-
我认为最干净的方法是从您的功能分支创建一个新的功能分支 2(从您想要的提交开始)。完成所有工作,将 feature-branch-2 合并为 master。然后将 feature-branch 合并到 feature-branch-2 (或 rebase,如果未发布,则外界将看不到您的技巧),并再次将其带到 master。
-
Reverting-the-reverts 也应该可以正常工作,如果更改与以后的更改发生冲突(如在此处询问)stackoverflow.com/questions/6084483/…,您应该会看到恢复冲突。但是你真的需要在主仓库中查看这种“混淆”的历史吗?
-
Sbat,这行不通,因为我们仍然会在 master 中进行更新。我需要让 master 回到之前的状态,修复问题,部署,然后恢复更改。还有其他想法吗?
标签: git