Git大提交的最佳实践

9
我正在使用git,并在本地仓库上进行大量工作。我喜欢做很多小提交(比如2到3个文件),而不是大提交,但这次由于时间紧迫和涉及许多文件的更改,我有很多未暂存的文件。
我的问题是,在这种情况下最佳实践是什么?是否有任何工具可以让我将工作分成小提交?
请注意,我知道如何逐个暂存文件并手动创建小提交,但我担心会犯错误并创建一个使代码处于不一致状态(如无法编译或运行糟糕)的提交。
谢谢!
3个回答

10

git add -i 可以帮助你将提交分成块,然后用 git stash 储存剩余的代码,检查一切是否正常,git commitgit stash pop 并重复循环。


关键在于 git stash;OP 表示他已经知道如何分割提交,但请注意 -p (--patch) 比 -i (--interactive) 更常用。 - Cascabel
Jefromi,OP说他知道如何逐个文件地进行分段。 - Ben James
我喜欢使用 git add -i,然后从交互式菜单中选择 p (patch)... 这样你就可以一次性暂存各个文件中所选的补丁。然后,在提交之前,请使用 git diff --cached 再次检查。 - grossvogel
1
我使用带有补丁的 git add -i,但是我通过 'git stash save --keep-index' 验证编译和操作,请参阅 git stash 文档。 - Gregg

3
你可以通过使用git add --patch来暂存文件的一部分。这将允许你提交相关更改集,而不会提交同一文件中发生的其他无关更改。
如果你想测试当前的HEAD而又不想失去所有未提交的工作,那么git stash就是你的好朋友。

3

个人而言,我发现使用git add -i有点繁琐,因为我很难看清它实际上在做什么。

然而,git gui在每个块和每行暂存和反暂存方面表现得非常好。有时需要进行快速临时编辑来支持暂存,然后立即撤销编辑,但大多数情况下,git gui对我来说非常有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接