如何忽略Git合并中的文件?

时间:2013-09-28 16:36:02

标签: git branching-and-merging

我正在开发一个有两个分支的(Django)网站:masterdev

master是生产版本,不应该直接在这里完成任何工作。所有更改都应来自合并dev分支,一旦被认为是稳定的。

正如您所猜测的那样,

dev是开发分支,所有更改都在这里(和子分支)进行。

在服务器中,我有两个网站正在运行,一个是生产网站(使用master分支),另一个是私有网站,使用dev子网使用dev分支。

问题是所有配置文件,静态文件(图像等)都在控件版本内,以便能够轻松地将它们推送到服务器。但是,如果这些文件(静态,配置...)在dev中被修改为只在服务器中调试然后我需要与主服务器合并... 我如何设置一些文件和合并dev成为master时会被忽略吗?

我一直在搜索,但我找到了一些related questions,但他们会告诉您.gitattributes使用merge=ours。但是,这种方法有一个很大的警告:只有在两个分支中修改文件时才应用策略,但这不是我的情况。

有关我应该如何继续的任何提示?

3 个答案:

答案 0 :(得分:5)


git checkout master

git merge --no-log --no-ff --no-commit dev

git checkout master <files-you-don't-want-to-merge>


git add <files-you-don't-want-to-merge>

git commit -a

~~~ Test / Build ~~~

git push origin master 


答案 1 :(得分:2)

说实话,git听起来像是解决这个问题的错误地方。

Django提供了针对生产和开发环境进行单独设置/配置的工具。我建议你看一下这篇文章:Django: How to manage development and production settings?

如果您按照上面帖子中的建议进行操作,您可以查看开发环境的配置等,然后合并到master将无害,因为生产将有自己的配置。

答案 2 :(得分:0)

已经很久了。但我正在寻找相同的解决方案。无处不在,它只是突然出现:使用子模块进行配置。使用子模块,您可以为不同的配置设置多个分支。

使用符号链接链接子模块中的文件(在子目录中)。