我正在使用git/github來維護我的項目的PHP項目。我遵循一個簡單的分支模型(master,dev,hotfix-,feature-,release)。我的應用程序包含一個配置文件(config.php),我在其中定義版本號。最近,我不得不做一個修補程序。我從主服務器分支了修補程序分支,進行了更改,然後碰撞了該版本(例如:1.1.2到1.1.3)。當我將修補程序合併回主服務器時,我沒有任何問題。當我將修補程序分支合併到dev中時,我與版本號行中的配置文件發生了合併衝突。在我的開發分支中,我有不同的版本號,所以我認爲這是造成衝突的原因。我將來如何避免這種情況?我是否需要在不同的時間和/或分支碰撞版本?爲什麼碰撞版本時會發生合併衝突?
3
A
回答
2
不,你不能在合併時避免這種情況 - 對同一文件中同一行的兩次更改最終會發生衝突。
您是否考慮過使用櫻桃挑選來避免挑選版本凹凸?另一個選項不是硬編碼版本,而是從git自動派生它(例如,發佈分支獲取基於提交數量的數字並且修復分支基於分支名稱分支後綴)
3
您可以使用「我們的「或」他們的「戰略告訴如何自行解決衝突,但我不認爲你可以在特定的路線上使用這些策略。你可能想要避免開發者更新版本號,而是在git-hook上做。
谷歌搜索變成了這樣:http://cd34.com/blog/programming/using-git-to-generate-an-automatic-version-number/
編輯: 或者,你可以簡單地標記化的版本號,只是讓Git完全忽略它。你有部署過程用一些衍生版本號代替令牌 - 無論是增量式還是基於git SHA1或其他編號。
有趣的話題,我很快就需要爲我的團隊做些事情。
相關問題
- 1. 爲什麼我會發生衝突?
- 2. 爲什麼碰撞發生很多次?
- 3. 爲什麼會出現這種合併產生衝突
- 4. C++訪問衝突碰撞
- 5. 當primary_key默認發生衝突時,Django會發生什麼?
- 6. 爲什麼在將分支合併到中繼並將分支合併回分支時會發生衝突?
- 7. 爲什麼沒有衝突的git合併仍然會產生合併提交?
- 8. 什麼是合併衝突?
- 9. 碰撞發生時,從nsuserdefaults
- 10. 什麼是併發衝突?
- 11. 爲什麼Box2D身體不會碰撞?
- 12. 爲什麼我的SKSprite在連接到SKPhysicsJointPin時不會對它發生碰撞?
- 13. CouchDB合併修訂版本(衝突)
- 14. 什麼是hashmap碰撞?並在我的代碼中發生?
- 15. 爲什麼我會遇到合併衝突?
- 16. 爲什麼div碰撞?
- 17. 當.h&.cpp Doxygen標籤衝突時會發生什麼?
- 18. 爲什麼我會與`git rebase -p`發生衝突
- 19. 爲什麼我會與git rebase -p -i發生衝突?
- 20. [物理] [2D] [碰撞]發生碰撞後應該怎麼辦
- 21. 合併衝突但沒有發生兌換衝突
- 22. 爲什麼git合併會在不同的文件間產生衝突?
- 23. XNA - 碰撞永遠不會發生
- 24. 爲什麼它不會在兩個div設置爲float時發生衝突:left?
- 25. 爲什麼重新合併會導致git中的重複合併衝突?
- 26. Git合併 - 同時合併2個分支會發生什麼
- 27. 當WP7中的FG和BG同步發生衝突時會發生什麼?
- 28. 從maven版本分支合併更改會產生衝突,這是由於poms
- 29. 爲什麼我在恢復時遇到git合併衝突?
- 30. 爲什麼當你使用git合併時,webrat.log總是衝突?
所以我想這會更容易做一些像'git describe --all> version.txt'這樣的東西,並且只是讀取該文件內容而不是對版本進行硬編碼?如果我繼續按照自己的方式行事,我想我會繼續遇到這個問題。 – Jeff
是的,這也是很多人做的事情。 – ThiefMaster