2011-05-10 83 views
0

我想請教一下你的方法是什麼樣子的處理情況是這樣的:我有這樣的設置文件mongoid.yml,和我有同一項目的兩個分支:主人和開發人員。我沒有把mongoid.yml放到gitignore中,因爲我在推送兩個分支時都需要它。但是,無論何時我在兩個分支中編輯它,例如,如果我在dev分支中編輯它,它會顯示在git狀態中,當我提交然後將dev合併到master時,master分支的mongoid現在看起來像dev中的一個。我需要他們與衆不同。你會如何處理這個問題?謝謝!混帳:兩個分支不容忽視文件需要不同

回答

-1

您可以使用您的文件不同的合併策略,以避免合併。

創建.gitattributes文件有:

mongoid.yml merge=ours 

然後,當合並在此文件衝突,舊的將被保留。

更多的相關信息herehere

+0

我認爲這樣做,鏈接的解釋基本上就是我自己的問題:避免數據庫配置文件被另一個分支覆蓋,因爲它們使用不同的數據庫表。謝謝Michaël – 2011-05-12 06:54:01

-1

你可以讓你的更改文件在一個單獨的始終致力於對大師的頂部,併合並其母公司。

例如:

    dev工作
  • 如果你有改變mongoid.yml,你做出承諾,只有這個文件改變了,
  • 切換到master之前,你git rebase -i master和移動你的mongoid.yml承諾底部(和壁球他們都與第一個,如果有一個以上的),
  • 然後切換到master和合並母公司Ø ˚Fdevgit merge dev^

這是一個小的工作對每個合併和你失去你的歷史上的Dev分支mongoid.yml變化,但它應該工作。

0

你想使一個Dev分支,然後檢查出來。將配置文件更改爲您需要的配置文件。切換回另一個分支。

git merge -s ours dev 

這會忽略你的Dev分支做了什麼,但在歷史上還標記爲如果這些變化已經合併。從現在開始,當你與開發分支合併時,你的配置將保持你所需要的狀態。這是建立開發分支的正確方法。

希望這會有所幫助。

+0

如果稍後更改文件(在dev或master中),會發生什麼情況? – 2011-05-10 22:29:52

+0

謝謝adymitruk我和MichaëlWitrant一​​起,因爲他的例子中的鏈接似乎直接解決了我的問題。 – 2011-05-12 06:55:45