使用 git 暂存时如何确保 "code must be compile" 的提交策略?
How to ensure commit policy of "code must be compile" when using git staging?
假设这种情况,我修改了两个源文件,但只暂存其中一个,并执行提交(本地)这个特定的提交将代表文件系统中不存在的源状态,所以我不能测试它是否编译。 (这是提交策略所必需的)
在本地还原到该特定提交(然后编译)将导致未暂存文件的更改丢失。
如果不将其推送到远程,我无法将其克隆到其他文件夹以测试是否编译,但是将其推送到远程将使团队可以使用未经验证的源,所以让事情变得更糟。
我能找到的唯一工作流程是,创建当前源的本地(备份)副本,然后将本地回购恢复为提交,(接受未提交的更改丢失(未暂存的源文件) ), 编译,如果编译不通过,再从备份中复制回来,修改,猜一猜,修改,还是没有暂存我一开始不想提交的东西,然后重复这个循环,直到恢复的文件被编译。
问题
听起来太复杂了,
- a) 我想念一些东西,
- b) 文件的暂存要求彼此严格一致(源文件)暂存不是可用的做法。对多个文件的修改必须是原子的(a la ACID)。
您可以使用 git stash push -ak
撤消对工作目录的所有更改,这些更改尚未提交或暂存。然后您可以进行测试,提交阶段性更改,然后 git stash pop
恢复正在进行的工作。 git stash
文档甚至建议使用此用例(示例下的“测试部分提交”)。
假设这种情况,我修改了两个源文件,但只暂存其中一个,并执行提交(本地)这个特定的提交将代表文件系统中不存在的源状态,所以我不能测试它是否编译。 (这是提交策略所必需的)
在本地还原到该特定提交(然后编译)将导致未暂存文件的更改丢失。 如果不将其推送到远程,我无法将其克隆到其他文件夹以测试是否编译,但是将其推送到远程将使团队可以使用未经验证的源,所以让事情变得更糟。
我能找到的唯一工作流程是,创建当前源的本地(备份)副本,然后将本地回购恢复为提交,(接受未提交的更改丢失(未暂存的源文件) ), 编译,如果编译不通过,再从备份中复制回来,修改,猜一猜,修改,还是没有暂存我一开始不想提交的东西,然后重复这个循环,直到恢复的文件被编译。
问题
听起来太复杂了,
- a) 我想念一些东西,
- b) 文件的暂存要求彼此严格一致(源文件)暂存不是可用的做法。对多个文件的修改必须是原子的(a la ACID)。
您可以使用 git stash push -ak
撤消对工作目录的所有更改,这些更改尚未提交或暂存。然后您可以进行测试,提交阶段性更改,然后 git stash pop
恢复正在进行的工作。 git stash
文档甚至建议使用此用例(示例下的“测试部分提交”)。