背景:
我们在系统中生成了需要以最终状态提交的文件(例如,我们不能依赖源(未生成的)文件并动态生成已生成的文件)。由于需要这些生成的文件,因此它们不能被git忽略。
问题:
这些文件会在执行checkout和pull命令时触发很多“Your local changes to the following files would be overwritten by merge”错误。
当我执行pull或checkout时,我从不关心我的文件是什么,我只关心新文件。 (显然,我非常关心生成文件的源文件。我希望对源文件进行合并警告,源文件存储在不同的目录中。)
但是,在提交时,我希望我的版本“获胜”,并且将提交生成的文件。
可能的解决方案:
现在,我只需运行git checkout -- generated-files/
即可在拉取或checkout之前重置我的生成文件并跳过任何合并错误。它有效,但我经常忘记执行它,如果可能的话,我想自动化它。
我研究了pre-checkout和pre-pull钩子,但git不提供它们:(
问题:
- 有没有更好的方法来处理生成的文件?
- 有没有一种方法可以在执行pull或checkout之前强制运行
git checkout -- generated-files/
? - 你如何处理git中的生成文件?
git stash
,然后进行pull
操作,最后再执行pop
,这样就可以保留你的更改。 - BatScream