這個問題是不特定IOS的,但我在這裏包括實際使用情況清晰如何使用Git設置特定於文件的默認合併策略?
我運行的是iOS的項目稱爲Foobar
,版本控制下保持明顯。 在iOS項目環境中的項目文件中,有一些名爲Foobar-Info.plist
的文件,這是一個存儲關於項目的有趣信息的XML文件,例如版本和構建的數量。
我每次生成項目,我增加存儲在該文件中,像這樣的編譯次數:
...
<key>BuildCount</key>
<string>2203</string>
<key>CFBundleShortVersionString</key>
<string>0.0.4</string>
<key>CFBundleVersion</key>
<string>0.0.4-release/0.0.4.2203</string>
...
其中「0.0.4釋放」是一個git流分支的名稱,2203是內部編號。這在CFBundleVersion
字段中使用,所以對於構建來自何處的情況我是非常明顯的。在另一分支
想象一下,我已經取得了很大的進步,因爲釋放和同一領域的樣子:
...
<key>BuildCount</key>
<string>2754</string>
<key>CFBundleShortVersionString</key>
<string>0.0.4</string>
<key>CFBundleVersion</key>
<string>0.0.4-feature/add-quux-and-baz.2754</string>
...
比方說,我與釋放完成,並且它併入主線develop
科。
問題
爲了獲得在發佈分支的最新進展情況,我要變基的特性分支到develop
。
發生這種情況時,Foobar-Info.plist
將在rebase進程中的每次提交時都會導致衝突。這是因爲每次提交都會增加內部版本號;我必須手動合併通過選擇線條手動指定行與最新版本。請注意,3-way diff的基本版本也將不同。
<string>2000</string> // Base
<string>2754</string> // Local ** always pick this one; it's the latest
<string>2203</string> // Remote
我怎樣才能知道,對於一個特定的文件,Foobar-Info.plist
,我希望它採取的最新變化,解決衝突我爲我的git?
編輯:該文件必須保存在源代碼管理下。我想保留BuildCount
,因爲這是對我的項目投入的努力的一個很好的表示,我想保留它!我知道這個數字只顯示了最少的構建數量,但這對我來說足夠好了。
我發現http://stackoverflow.com/questions/928646/how-do -i-tell-git-to-always-select-my-local-version-for-conflicted-merge-on-as,這可能是我的問題的答案。 – fatuhoku
'複製合併'不是我想要的。我有點想要COPY MERGE FOR CONFLICTS ONLY。其他更改仍應正常應用和合並。 – fatuhoku
另一件事:它不是複製合併,因爲最新的變化是*不一定是*本地分支:可以想象,'develop'具有其他特性的提交,其中來自分支被重新分派的內部編號更大。 – fatuhoku