2009-09-15 71 views
5

我试图将我的静态文件保存在一个单独的分支中,这样我就可以避免它们融入到我的主文件夹中(在Heroku上,应用程序的段落需要保持较小)。我不想忽略我的静态文件,因为我想将它们放在我的“devel”分支中。Git中的单独文件

理想情况下,我想保留test.db空白,并且我的整个公用文件夹在主分支中保持空白。

那么,我可以在分支上创建一个“覆盖”吗?我可以阻止某些文件/目录合并到我的主分支中吗?

+0

@Jonathan:感谢拼写检查。 – arbales 2009-09-15 07:10:49

+0

注意:这是一个解决方案,但其他人可能会建议其他组织来实现相同的结果。 – VonC 2009-09-15 07:22:53

+0

我怀疑。我当然有兴趣听到其他有趣的解决方案,甚至只是为了我自己/他人的熏陶。 – arbales 2009-09-15 08:42:02

回答

8

你可以定义你的主分支的同一个静态文件,但:

由于当(即空) .gitattribute不会在其他分支上定义,这些文件的合并将会正常进行。


的想法是定义在这些静态文件对主分支下面的内容目录中的文件.gitattributes:

myStaticFile1 merge=keepMine 
myStaticFile2 merge=keepMine 
myStaticFile3 merge=keepMine 

这三个文件将始终保持自己的本地内容(在与主人合并时,主人是空的)。你将不得不定义一个合并驱动程序(这里叫做“keepmine”)。查看该脚本的链接问题。

+0

你能解释一下更多的细节吗?我之前没有使用过属性,链接并不是100%直接。 – arbales 2009-09-15 07:05:11

+0

真棒 - 感谢您的解释! – arbales 2009-09-15 07:14:46

+0

此外,我似乎无法定义通配符,我试图公开/ * merge = keepMine,这是行不通的。我也尝试删除目录并触摸它,制作一个文件,但是Git抱怨并且在合并时制作了另一个公共版本。 – arbales 2009-09-20 03:01:06

0

将文件添加到master中的.gitignore。当你签出devel时,.gitignore会改变,不会再忽略它们。 (请注意,如果您运行的是git clean -x,这些文件将被覆盖。)