我必须使用第三方API进行开发。我将代码上传到git,将代码下载到第3方接口上,然后从API执行代码。这意味着大量的git commit。我一直在尝试使提交历史更加连贯,以便在模块准备就绪时,我可以一路显示代码中所做的所有更改。我应该修改每个调试提交吗?如果有帮助,我正在使用Visual Studio。
通常,如果您有大量的调试提交,则这些提交的历史不会很好。有用的是按照您的建议用git commit --amend
修改提交,或使用交互式变基将它们压缩在一起。
您执行此类壁球的方法是运行git rebase -i BASE
,其中BASE
是您要一起壁球之前的提交。然后,您将获得如下提交列表:
pick 92a28ece5a commit 1
pick 5878fe6a98 commit 2
pick 402864eaa3 commit 3
pick d124692e2f commit 4
您将除了第一次提交以外的所有提交的pick
行更改为fixup
,保存并退出编辑器,它们全部合并为一个。如果您使用squash
而不是fixup
,Git将提示您合并提交的提交消息,而不是丢弃它们。
还有一种更简单的方法,那就是使用git commit --fixup COMMIT
或git commit --squash COMMIT
,它们针对给定的提交(在这种情况下,可能是提交1)创建修正或压缩提交。然后,您可以运行git rebase -i --autosquash BASE
,Git会自动将这些提交标记为压入或修复提交,并将其移至正确的位置。
理想情况下,每次提交都是独立的逻辑更改,所有测试均通过该更改。您可以使用fixup或squash提交对分支中较旧的提交进行更改,然后最后将它们一起压缩。最终产品看起来就像您从未在系列中犯任何错误,并从一开始就编写了完美的代码。
您可能还希望有不错的提交消息,Git documentation对于此消息很有帮助。很好地描述您的更改对其他开发人员以及将来的您都有帮助。我经常发现自己在质疑为什么事实发生六个月后才做出某些更改,因此我通过编写良好的提交信息所做的工作取得了巨大的回报。
如果您正在寻找示例,则Git和Linux具有此类实践,通常是此类方法的典范。