2013-12-19 72 views
0

我有一个项目,它部署在heroku上。现在,我需要部署相同的项目,但需要进行一些更改(特别是设置ActionMailer,它们位于两个不同的目录中)。合并分支。 - 如何在合并时忽略某些文件?

因此,我的第二个项目是一个开发副本,客户将在其上测试更改。批准后,这些更改将应用​​于生产服务器上。

我想创建两个分支,为某些文件添加例外并使用它。 请告诉我如何做到这一点。

+0

我不知道我得到了正确的问题,但至于是什么,我可以从标题明白,我会 1)提交的非特殊文件 2)藏匿提交的更改(特殊文件) 3)合并 –

回答

1

这听起来像你想在不同的机器上有不同的配置设置。

这是我平时对配置文件做:

  • 假设我想与一个叫config.json
  • 添加config.json.gitignore文件来配置我的应用程序,这样就不会被包含在仓库
  • 创建配置文件模板,例如config.json.template具有良好的默认
  • 添加在README.md或一些其他适当位置指令config.json.template必须复制到config.json和适当修改
  • 守卫我的代码,这样,如果config.json缺失有人逻辑应用程序启动时
  • 提交通知我修改.gitignore,我修改的文档,我的新config.json.template样本文件

当你部署到新的服务器,只需复制模板并修改。 .gitignore将阻止提交配置文件的更改,因此您应该确保将其作为常规备份的一部分包含在其中。

配置是数据,就像数据库的内容一样。它应该与应用程序代码分开保存。

1

你不能这样做,因为这样做会彻底破坏完成合并的概念。 Git需要知道/追踪它已经合并到一个分支中,并且“部分”这样做会明显地破坏它知道它已经完成了什么的能力。

我会建议创建一个分支和樱桃采摘包含您希望您的客户端看到的变化,而忽略其余的提交。理想情况下,你做出了很好的,合乎逻辑的承诺,所以这个行动计划应该适合你。

+0

对于某些带有“merge = ours”标志的文件/目录,你怎么看.gitattributes? –