Git:回归和改变历史的最佳流程

时间:2017-10-31 01:28:45

标签: git

我先说这是一个不寻常的git流程。我正在编写一个带有长自述文件的教程,该教程在此过程中提供了代码示例。

用户可以签出早期提交并查看我当时正在构建的项目的状态,更多地关注教程,检查下一次提交等。

我真的很想用git做这个,但是我有一个问题,因为如果我回去想在教程开头改变一些东西(拼写错误或方法)那么我需要回去改变历史很多提交都会在它之后发布。

有没有一种简单的方法可以完成我想要做的事情?

1 个答案:

答案 0 :(得分:1)

通常的解决方法是在每个步骤中创建一个您希望用户关注的分支。

默认情况下,分支会指向master中的现有提交。

 x--x--x--x--x--x--x (master)
    |        |
  (step1)   (step2)

但是,如果您需要修复其中一个提交,而不是重写所述提交(更改所有其他后续提交的历史记录/ SHA1),您将检出该分支,在那里进行新的提交。

 x--x--x--x--x--x--x (master)
    |        |
    X       (step2)
 (step1)

任何使用该分支的用户都必须执行git pull才能获得该步骤的更新版本。

然后,您可以git cherry-pick新提交master(以及此提交后的其他分支),然后继续。
我不认为需要合并(为了不让历史图表变得不必要复杂)