我有几个文件(一个pom.xml和一个appengine-web.xml(GAE配置文件)),我希望在同一个项目的不同分支中保持不同的状态。
之前已经提出了类似的问题,我之前看到过的两个解决方案是:
git merge --no-commit from-branch
,和.gitattributes
,使用以下行:filename.ext merge=ours
(释义)如果在合并期间发生冲突,这两者都只保护当前分支中的文件免于合并。在FF合并的情况下,当前分支中的版本被覆盖。我希望即使在FF合并的情况下也不会覆盖这些文件。
除非通过特定于文件的命令调用,否则是否有办法保护当前分支中的版本不会被合并覆盖?
我目前正在尝试不检查每个分支文件,将它们放在存储上,然后当我回到分支时从那里恢复。是否有更高效,更少故障的方式?
答案 0 :(得分:2)
另一种方法是:
pom.xml
pom.xml.master
和pom.xml.mybranch
:这样,任何合并都不会影响它们,因为它们的名称不同。然后,您可以进行版本和跟踪:
pom.xml.<abranch>
文件,并生成pom.xml
文件(保留未跟踪,私有).gitignore
忽略生成的pom.xml
文件.gitattribute
声明污迹内容过滤器(见下文)使用content filter driver通过 .gitattributes
declaration 自动生成实际pom.xml
。
(来自"Customizing Git - Git Attributes"的图片来自&#34; Pro Git book&#34;))
在您的本地配置中声明该内容文件管理器驱动程序后,它会自动在git checkout
为您生成pom.xml
文件。
请参阅&#34; Best practice - Git + Build automation - Keeping configs separate&#34;。
对appengine-web.xml
文件重复相同的想法。