GIT - 在之前的提交中更改代码,以便在之后的提交中反映出来

时间:2011-11-12 12:17:51

标签: git rebase git-rebase

所以我目前正在制作一个包含HTML5的网站,当我意识到我忘记将HTML5重置到我的css文件中时,我有很多方法。

目前我提交了大约10个提交,我想要做的是将重置代码添加到我的第一个提交中的css文件中,然后将其提交给其余的提交。

我阅读了一下,我认为git rebase是要走的路,但我不确定如何正确使用它。

This SO question似乎接近我想要做的事情,但我还没有精通Git,还没有适应这一点。

提前致谢。

2 个答案:

答案 0 :(得分:2)

结帐git rebase -i其中-i代表“互动”。在那里你可以“压制”一起提交。

答案 1 :(得分:1)

试试这个:

1)使用git checkout检查您要更改的过去提交。

2)使用git tag PastCommit标记此过去的提交。

3)使用git checkout -b FixBranch创建一个名为FixBranch的新分支。

4)添加新文件并在FixBranch上进行新的提交。

5)使用git checkout master切换到您的主分支。

6)使用git tag BACKUP标记,以防你搞砸了 - 只是为了在变基之前保持安全:)

7)使用git rebase --onto FixBranch PastCommit - 这会将PastCommit和master主管之间的东西重新绑定到FixBranch上。

8)使用git tag -d PastCommitgit tag -d BACKUPgit branch -d FixBranch进行整理。

9)使用git gc进行垃圾收集并删除任何悬空提交。

请注意,您可以(并且应该!)在gitk中可视化所有这些内容,以便您可以看到您正在做的事情(并确保我没有错过任何内容 - 这有点偏僻我的头。)

附录:我刚刚在测试存储库上尝试了这个,它运行正常。