当我在调查一个错误时,有时候我并不会认真工作,特别是当我需要挖掘许多提交的分支时。
希望一旦我完成了这些操作,我会使用git merge yeah_i_got_it
将工作结果合并到我的主干分支中。 在这种情况下,我的存储库可能如下所示:
v There is a bug here
A---B---C----------------------------------------------F (master)
\ /
o---o---o--o--o (bug) /
\ /
o---o--o--o (oups_this_way_better) /
\ v Clean a bit /
o---D---E------------------o (yeah_i_got_it)
^
Solved the bug here
最终我希望每天只保留一些相关的提交记录:
A--B--C--D--F (master)
关于其余部分,它只是垃圾,我不需要它。那么,如何处理这个令人不愉快的工作流程呢?
因为Git即使在删除所有垃圾分支后仍然保留一切,给每个提交分配一个重要性标志是Git的一个有用选项,以帮助我在忙碌之后清理我的存储库。在我的存储库中,我可以识别出无用的提交、可能有用的提交、肯定有用的提交,最后但并非最不重要的是我需要保留的非常重要的提交及其分支。
摆脱无用的提交通常需要我很长时间。我需要回顾我的日志,确定我想要消除的内容,并且不能犯错误。
所以我的问题是:
如何彻底从我的Git存储库中正确地消除临时提交和分支?
以下是一些随机想法:
- 我的工作流程很糟糕,我永远不应该这样工作。 - 只需向每个临时提交的注释添加前缀,如“junk”或“garbage”。 - 可能存在本地Git解决方案,可以帮助我完成工作,例如 `git rebase-and-clean yeah_i_got_it --keep D`。