場景:
對於每個分支,我使用的是不同的開發數據庫。原因是架構可能有所不同,具體取決於分支上的工作。
這是直截了當的,我只是改變了app.config中的連接字符串。
但是,這有問題,那些更改 - 當提交時 - 我執行合併時合併回父分支,有效覆蓋該父分支的app.config。
不過,我想在我的存儲庫中更改app.config,以便我可以簡單地簽出一個分支並擁有正確的app.config。所以,git update-index --assume-unchanged
不是一個解決方案。合併時自動忽略一些更改
0
A
回答
0
此問題的解決方案是.gitignore
。主機特定設置的環境不應該與源共享存儲庫。標準方法是將app.properties
添加到.gitignore
並且永不提交;取而代之的是app.properties.template
,其中app.properties
可以設置在特定環境中,或者app.properties.default
從其中將讀取默認值。
0
我有一個解決方案,但它不是自動的。部分可能是因爲git,但也因爲忽略這樣一個完整的文件不是正確的方法 - 如果你已經做了一些你想合併的app.config的其他變化呢?
讓我先看看我是否正確理解你的問題。你在一個分支上開發一些功能,當它完成時被合併到其他的「主」分支中。在完成此項開發時,您可以進行一些臨時更改,這些更改在完成時不應包括在內。具體來說,你可以在app.config中提到數據庫連接字符串,但是在一般情況下,它可以是任何類似額外的日誌記錄,跳過調用某些函數等。 您希望將所有內容都檢入並存儲在git中,以便沒有鬆散的末端與修改後的文件中未檢查
假設我的理解是正確的,這是我如何處理這個問題:雖然 發展我只需添加一個給定的前綴和/或後綴(比如====
) 到這些提交的提交消息不應該合併, 然後在最後合併之前刪除那些提交。
所以,你最終得到一個提交歷史看起來做的時候像
* blah blah blah
* ==== Remove extra extra logging again ====
* blah blah blah
* ==== Extra extra logging ====
* blah blah blah
* blah blah blah
* ==== Extra logging ====
* ==== Skip calling whatever_function ====
* blah blah blah
* ==== Change database connection string ====
* blah blah blah
它是微不足道的,以消除那些暫時改變(這大概可以自動的)。你必須稍微改變你的工作流程,但好處是絕對值得的。
您也可以看到this answer我在那裏描述了相同的解決方案,並提供了一些更多的細節和截圖。
相關問題
- 1. 爲什麼重新合併分支會忽略一些更改?
- 2. 合併時忽略某些xml行
- 3. 如何忽略合併更改?
- 4. 忽略文件和合並更改
- 5. 忽略來自合併
- 6. 合併分支。 - 如何在合併時忽略某些文件?
- 7. 如何讓Git在升級更改時自動忽略某些文件?
- 8. 忽略git合併
- 9. 切換Git分支並忽略更改
- 10. git合併分支,忽略一些提交
- 11. 在做svn合併時忽略svn:「property」
- 12. 將分支合併到master,忽略master的更改
- 13. 在SVN合併後忽略svn:mergeinfo中的更改是否安全?
- 14. 如何在檢查更改時讓Jenkins忽略某些文件?
- 15. 忽略在運行時序列化的一些對象字段(動態忽略)
- 16. Doctrine2 ORM忽略合併
- 17. Rails的assert_difference會忽略一些更改嗎?
- 18. ziping他們時忽略一些文件
- 19. 掃描時忽略一些類PackagesToScan
- 20. 什麼時候byte_order更改被忽略?
- 21. 告訴mercurial在合併和更新時忽略文件
- 22. Gitlab合併請求: - 合併時忽略幾個文件
- 23. 分區忽略一些列
- 24. 忽略一些註釋
- 25. Git:合併時忽略一些文件(保留一些文件限制爲一個分支)
- 26. ASP.NEt Dropdown忽略更改
- 27. 如何配置Mercurial HG自動忽略行結束更改?
- 28. 拉合併時忽略一個父提交
- 29. ViewDragHelper - 拖動時忽略子佈局更改
- 30. Spring MVC:Servlet中自動忽略
感謝您的回答,但絕對不會回答我的問題。正如我所說的,當我切換分支時,我自動希望切換這些設置。如果你知道一個沒有提交app.config的方法,那很好,但是交換機必須是自動的。 –
好的,沒有得到完整的問題。恕我直言,最好的解決方案仍然是將模式外部化爲env變量或腳本,否則你可以通過將配置拆分成兩個文件'app.properties'和'schema.properties',在相應的分支中設置所需的模式,使應用程序從這兩個文件中讀取。這樣,您不必在分支之間切換時更改'schema.properties'。在進行合併時,您仍然必須格外小心此文件,以便正確的模式結束於正確的分支。 –