Git 如何使用可以还原的有意义的提交消息进行小更改?

Git 如何使用可以还原的有意义的提交消息进行小更改?,git,Git,在使用Git时,我尝试一次做一个小的更改,并分别提交每个更改。这使我能够拥有详细的提交消息,并使我能够轻松地恢复单个更改,如本文(不是我的)所述。有时在处理一个大型功能时,我会看到一个不相关的小bug,我想修复它。根据我当前的系统,我必须注意稍后要修复的bug(通常作为代码注释),提交大型功能,然后返回并修复bug 我想知道分支是否会让我在另一个分支中完成该功能的同时,修复bug并立即提交。我可以将修复推送到公共存储库和我的“添加功能”分支吗?分支似乎有点笨拙,有没有更简单的方法来获得我想要的结

在使用Git时,我尝试一次做一个小的更改,并分别提交每个更改。这使我能够拥有详细的提交消息,并使我能够轻松地恢复单个更改,如本文(不是我的)所述。有时在处理一个大型功能时,我会看到一个不相关的小bug,我想修复它。根据我当前的系统,我必须注意稍后要修复的bug(通常作为代码注释),提交大型功能,然后返回并修复bug


我想知道分支是否会让我在另一个分支中完成该功能的同时,修复bug并立即提交。我可以将修复推送到公共存储库和我的“添加功能”分支吗?分支似乎有点笨拙,有没有更简单的方法来获得我想要的结果?

听起来你应该在一个功能分支中开发你的功能(例如,请参阅)

因此,您在功能分支中执行功能工作。当需要修复bug时,您可以

  • 从要素分支切换到主分支
  • 在master中修复错误吗
  • 推手
  • 切换回您的功能分支
  • 继续使用该功能
  • 你会问分支是否是问题的解决方案,所以我不会像其他答案那样假设你已经在分支上了

    在一个分支中解决您的问题非常容易。这就是为什么
    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中的任何更改而更新)@dotancohen
    git merge
    起作用。或者,如果您没有推送功能分支,您可以
    git rebase
    主分支上的功能分支(
    git rebase master
    在功能分支上).谢谢你,本。这是一个小单更改的好主意。