2013-12-19 73 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? –