我如何使我的git历史更加连贯?

问题描述 投票:0回答:1

我必须使用第三方API进行开发。我将代码上传到git,将代码下载到第3方接口上,然后从API执行代码。这意味着大量的git commit。我一直在尝试使提交历史更加连贯,以便在模块准备就绪时,我可以一路显示代码中所做的所有更改。我应该修改每个调试提交吗?如果有帮助,我正在使用Visual Studio。

visual-studio github
1个回答
0
投票

通常,如果您有大量的调试提交,则这些提交的历史不会很好。有用的是按照您的建议用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 COMMITgit commit --squash COMMIT,它们针对给定的提交(在这种情况下,可能是提交1)创建修正或压缩提交。然后,您可以运行git rebase -i --autosquash BASE,Git会自动将这些提交标记为压入或修复提交,并将其移至正确的位置。

理想情况下,每次提交都是独立的逻辑更改,所有测试均通过该更改。您可以使用fixup或squash提交对分支中较旧的提交进行更改,然后最后将它们一起压缩。最终产品看起来就像您从未在系列中犯任何错误,并从一开始就编写了完美的代码。

您可能还希望有不错的提交消息,Git documentation对于此消息很有帮助。很好地描述您的更改对其他开发人员以及将来的您都有帮助。我经常发现自己在质疑为什么事实发生六个月后才做出某些更改,因此我通过编写良好的提交信息所做的工作取得了巨大的回报。

如果您正在寻找示例,则Git和Linux具有此类实践,通常是此类方法的典范。

© www.soinside.com 2019 - 2024. All rights reserved.