我注意到GitHub上的一些存储库在查看Pull请求时特别关注他们认为可接受的历史记录。他们的理由是存储库的历史应该具有高信噪比; git log
应该“讲故事”。
就哲学而言,我非常同意这一点。但是在 practice 中,我可能是反对整洁,有序的提交行为的最严重的罪犯之一。
我想改变它。
我试图注意,“只是试着记住”......但它确实对我不起作用。我太散乱了。我可以启动一个功能分支(或bugfix分支,或其他),目的是让我的工作专注于特定主题。有时该主题可能是“改进文档”,“重构此类”或“调整此程序的输出”。但在我知道它之前,我正在做一些事情,当我的功能(或错误,或其他)分支准备合并时,它是假设的主题的混合还有,还有其他一些东西。
总的来说这是正确的,但如果我必须强调一些我自己最糟糕的习惯,可能最“吵”的编辑是:
所以,我喜欢做所有这些事情,我为自己的工作感到自豪。但我希望我知道一种方法,这样我的项目历史就更有序/合乎逻辑
有人知道散点图如何变得更好吗?
(工具,心理模型,图表......欢迎任何事情!)
答案 0 :(得分:2)
你没有必要用git来对抗你。查看补丁添加(git add -p
),这将允许您选择和提交您的更改的部分。如果你使用Vim,fugitive插件会让这很简单。 Emacs用户有magit,但我没试过。我听说它也擅长简化补丁添加。此外,如果您只是提交,比如说,掌握,并意识到它应该是过去5次提交的分支,只需要git branch topic
删除主题分支头,{{1} }备份master 5提交,然后git reset --hard HEAD~5
并继续。
如果是最后一次提交,只需进行/保存调整,添加更改,然后git checkout topic
将它们折叠到上一次提交中。如果有两次或更多次提交,请将更改提交给新的,然后git commit --amend
并将最新(最底部)提交行移至您想要更改的提交线下方,并更改“选择”该行的开头为'fixup',然后保存并退出。
再次,git rebase -i
并在要调整,保存和退出的任何提交中将git rebase -i
更改为pick
,编辑文件,添加/它们,{{1必要时重复。
没错。
像这样的提交很好,并且代码审查非常快:
edit
您可以使用提交消息的正文来解释原因,如果您认为它将帮助您的提交的未来用户,包括您自己。
答案 1 :(得分:0)