使用 git 暂存时如何确保 "code must be compile" 的提交策略?

How to ensure commit policy of "code must be compile" when using git staging?

假设这种情况,我修改了两个源文件,但只暂存其中一个,并执行提交(本地)这个特定的提交将代表文件系统中不存在的源状态,所以我不能测试它是否编译。 (这是提交策略所必需的)

在本地还原到该特定提交(然后编译)将导致未暂存文件的更改丢失。 如果不将其推送到远程,我无法将其克隆到其他文件夹以测试是否编译,但是将其推送到远程将使团队可以使用未经验证的源,所以让事情变得更糟。

我能找到的唯一工作流程是,创建当前源的本地(备份)副本,然后将本地回购恢复为提交,(接受未提交的更改丢失(未暂存的源文件) ), 编译,如果编译不通过,再从备份中复制回来,修改,猜一猜,修改,还是没有暂存我一开始不想提交的东西,然后重复这个循环,直到恢复的文件被编译。

问题

听起来太复杂了,

您可以使用 git stash push -ak 撤消对工作目录的所有更改,这些更改尚未提交或暂存。然后您可以进行测试,提交阶段性更改,然后 git stash pop 恢复正在进行的工作。 git stash 文档甚至建议使用此用例(示例下的“测试部分提交”)。