首页 > 解决方案 > 做 git add (and) commit 的最佳实践是什么

问题描述

我已经使用 github 几个月了。

我确实理解添加和提交的概念。但我从不区分添加和提交,我最终总是使用

混帐添加。&& git commit -m “评论”。

我可以看到有些人的工作流程与我相似(例如:Git add and commit in one command

我看到它的方式,如果我完成了我的代码的第一个“外观”,我添加并提交它到 git,然后我再次开始编码,第二个“外观”然后会有类似“提取方法,简化调用”的注释”。但我从不添加而不提交。

您能否给我一个现实生活中的例子,其中添加和提交并不总是一起完成?

谢谢和最好的问候,史蒂夫

标签: githubcommit

解决方案


Git 建议完成提交的方式是,每次更改都是原子的、逻辑的提交。换句话说,它代表一个逻辑更改(执行良好),并且整个测试套件在更改之前和之后都通过了。

添加和提交可能分开进行的一种情况是,当您正在完善提交时。您可能有一个可以运行的代码的初始版本,但很混乱或其中仍有调试代码。您可以将此更改添加到索引中git add,同时继续在工作树中对其进行细化。如果你发现你破坏了东西,你可以回滚到索引中的版本,然后再试一次。另一方面,如果您发现某个更改更好,您可以再次添加它,直到您最终准备好提交。

对于这种情况,另一个同样有效的工作流程是进行多次提交,每次更改都是对上一次的改进,然后使用git rebase -ior将它们压缩在一起git reset --soft。你想做什么取决于你喜欢的开发风格;它们基本上都会产生相同的结果。

您可能希望git add单独使用的另一种情况git commit是您只想存储一些更改。您可以使用git add将所需更改保留在工作树中,然后git stash --keep-index将其余更改隐藏起来。

一个您没有问但可能在您脑海中的问题是为什么这两个功能是分开的。这是因为有时在开发时,您最终会从树中的多个逻辑提交中得到更改,并且您希望一次只提交其中的一部分,为额外的逻辑更改进行额外的提交。一次只能添加部分更改意味着您可以提交这些更改,然后添加更多更改并提交它们,依此类推。


推荐阅读