【发布时间】:2016-03-29 12:35:34
【问题描述】:
背景:
我们在系统中生成了需要以最终状态提交的文件(例如,我们不能依赖源(未生成的)文件并即时生成生成的文件)。由于我们需要生成的文件,所以这些文件不能被 git 忽略。
问题:
这些文件在结帐和拉取命令时从 git 触发了很多 Your local changes to the following files would be overwritten by merge 错误。
当我提取或结帐时,我从不关心我的文件是什么,我只关心新文件。 (显然我非常关心生成文件的源文件。我很高兴源文件上的合并警告,它保存在不同的目录中。)
但是,当我提交时,我希望我的版本“获胜”并提交我生成的文件。
可能的解决方案:
现在我只是在拉取或结帐之前运行git checkout -- generated-files/ 以重置我生成的文件并跳过任何合并错误。它有效,但我经常忘记这样做,如果可能的话,我想自动化它。
我查看了预结账和预拉钩,但 git 没有提供它们:(
问题:
- 有没有更好的方法来处理生成的文件?
- 有没有办法强制
git checkout -- generated-files/在拉取或结帐之前运行? - 在 git 中如何处理生成的文件?
【问题讨论】:
-
如何做一个
git stash,然后做一个拉动,然后是一个pop。它会保留您的更改。 -
如果两个分支都对生成的文件造成了更改,那么保留其中一个分支都是不正确的。您应该在解决其他文件中的冲突后执行生成,然后将结果记录为合并版本