Git 当一个文件与两个不同的提交相关时要遵循的策略

Git 当一个文件与两个不同的提交相关时要遵循的策略,git,version-control,Git,Version Control,我有一个文件,我即将提交我的回购协议,但它与两个不同的提交有关 它是一个PHP,生成一些css文件使用的类名。所以我想同时提交所有这些文件,但是如果我这样做,我就没有机会指定我在输出类名的PHP文件中所做的错误修复 另一方面,如果我做了两次单独的提交,这样我就可以为每次提交正确地指定所有历史记录,如果将来我在CSS更改的地方签出提交,那么提交将无法工作,因为正确的PHP将不可用,所以我(或任何其他开发人员)将不得不后退两步(一个用于css文件,另一个用于修复php错误)在分支中,以使整个工作正常

我有一个文件,我即将提交我的回购协议,但它与两个不同的提交有关

它是一个PHP,生成一些css文件使用的类名。所以我想同时提交所有这些文件,但是如果我这样做,我就没有机会指定我在输出类名的PHP文件中所做的错误修复

另一方面,如果我做了两次单独的提交,这样我就可以为每次提交正确地指定所有历史记录,如果将来我在CSS更改的地方签出提交,那么提交将无法工作,因为正确的PHP将不可用,所以我(或任何其他开发人员)将不得不后退两步(一个用于css文件,另一个用于修复php错误)在分支中,以使整个工作正常进行


在这种情况下,什么是最合适的策略?

对我来说,听起来你想
挤压这些提交,以便将它们合并为一个提交。这听起来不太理想,但使用
挤压
可以为挤压的每个提交保留单独的提交消息历史记录,但它将在一个co中mmit


下面是一些关于使用git rebase-i的介绍,它可以执行
squash

这不清楚。你是说你写了一个文件来同时修复两个错误吗?如果我不清楚,很抱歉。PHP是唯一一个有错误的,并且在CSS文件中产生了错误的CSS类名。我必须修复PHP,然后在那之后t、 我可以看到CSS被正确地应用。同时,我对CSS文件进行了更改,以改善布局外观。此时,我必须进行提交,并且出现了之前所述的疑问。非常感谢CDub的帮助和挤压想法。那么,你是说最好同时进行bugf和CSS的提交吗ixed PHP和更完整的CSS文件,以及一条详细的提交消息?答对了。:)这样,依赖于其他更改的所有内容都有一个提交,如果您退出一个,那么您将全部退出。太好了。那么,最好做两次提交,然后重新设置基址,或者如果可以的话,只做一次?我正在考虑这样一个提交消息“实现了第五个框(CSS)并修复了PHP生成的类名中的错误”,或者最好是在提交1(实现了第五个框(CSS))和2(修复了PHP生成的类名中的错误)中执行,然后将它们压扁?就我个人而言,我的目标是尽可能少地进行提交。如果你能做一个,我会做的。只有在绝对必要的情况下才应该进行压缩提交。好的,酷!这就是我想知道的。我已点击作为接受答案。干杯