我先说这是一个不寻常的git流程。我正在编写一个带有长自述文件的教程,该教程在此过程中提供了代码示例。
用户可以签出早期提交并查看我当时正在构建的项目的状态,更多地关注教程,检查下一次提交等。
我真的很想用git做这个,但是我有一个问题,因为如果我回去想在教程开头改变一些东西(拼写错误或方法)那么我需要回去改变历史很多提交都会在它之后发布。
有没有一种简单的方法可以完成我想要做的事情?
答案 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
(以及此提交后的其他分支),然后继续。
我不认为需要合并(为了不让历史图表变得不必要复杂)