Git 如何使用可以还原的有意义的提交消息进行小更改?
在使用Git时,我尝试一次做一个小的更改,并分别提交每个更改。这使我能够拥有详细的提交消息,并使我能够轻松地恢复单个更改,如本文(不是我的)所述。有时在处理一个大型功能时,我会看到一个不相关的小bug,我想修复它。根据我当前的系统,我必须注意稍后要修复的bug(通常作为代码注释),提交大型功能,然后返回并修复bugGit 如何使用可以还原的有意义的提交消息进行小更改?,git,Git,在使用Git时,我尝试一次做一个小的更改,并分别提交每个更改。这使我能够拥有详细的提交消息,并使我能够轻松地恢复单个更改,如本文(不是我的)所述。有时在处理一个大型功能时,我会看到一个不相关的小bug,我想修复它。根据我当前的系统,我必须注意稍后要修复的bug(通常作为代码注释),提交大型功能,然后返回并修复bug 我想知道分支是否会让我在另一个分支中完成该功能的同时,修复bug并立即提交。我可以将修复推送到公共存储库和我的“添加功能”分支吗?分支似乎有点笨拙,有没有更简单的方法来获得我想要的结
我想知道分支是否会让我在另一个分支中完成该功能的同时,修复bug并立即提交。我可以将修复推送到公共存储库和我的“添加功能”分支吗?分支似乎有点笨拙,有没有更简单的方法来获得我想要的结果?听起来你应该在一个功能分支中开发你的功能(例如,请参阅) 因此,您在功能分支中执行功能工作。当需要修复bug时,您可以
git
将工作副本与准备提交的更改区分开来。在您的情况下,修复这个bug并使用git add-p
只添加您关心的补丁集。如果同一文件中没有任何其他工作,可以使用git add。然后git commit
(注意,不是git commit-a
,这意味着添加所有内容)一个补丁,然后继续您的功能工作
我经常使用它是因为您描述的原因,然后在最后的功能签入中,我再次使用它将主要功能拆分为更小的原子签入(如果适用)。隐藏当前的大更改,修复小错误并推送,然后隐藏pop?@Billiska这就是答案谢谢,我还没有听说过任何隐藏(正如Billiska所说)或分支(正如Klaus所说)是合适的,这取决于变化的大小。我倾向于发现隐藏比分支更不透明,所以我避免对它们进行大的更改。一定要花时间来熟练掌握两者。@kampu:会的!谢谢你,这对我来说是一个非常有成效的问题(两个非常好的答案)。谢谢,这看起来像是我想要的。但是如何执行步骤
3.5将bug修复推送到功能分支
?我可以进行区分和修补,但有更好的方法吗?@dotancohen:你可能想要git merge
(git merge SOMEBRANCH
将使当前分支随着SOMEBRANCH中的任何更改而更新)@dotancohengit merge
起作用。或者,如果您没有推送功能分支,您可以git rebase
主分支上的功能分支(git rebase master
在功能分支上).谢谢你,本。这是一个小单更改的好主意。