2014-10-28 44 views
6

當我合併其他團隊成員的iOS objc項目每一次,我得到了一些奇怪的衝突是這樣的:Xcode更改故事板的幀值會自動導致git合併衝突。如何解決它?

<<<<<<< HEAD 
    <rect key="frame" x="254.00000003476939" y="0.0" width="63" height="21"/> 
======= 
    <rect key="frame" x="254.00000010362709" y="0.0" width="63" height="21"/> 
>>>>>>> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 

我們從來沒有改變x的值,我們總是給喜歡價值整數。顯然,Xcode自動更改了值。 如何防止這種事情發生?

回答

2

您可以通過說服Git確認文件內容而不是已更改,從而避免檢查此修改值。

這是可能的與clean腳本將負責保持只有一個整數值爲x。
該腳本將僅適用於.storyboard文件(如described here),並且必須將「2544.xxx」替換爲「254」。

sed -i 's/x=\"([^0-9]+).*\"/x=\"\1\"/g' 

通過該腳本文件的恢復是通過content filter driver自動化的,使用.gitattributes declaration

https://i.stack.imgur.com/tumAc.png
(圖片來自"Customizing Git - Git Attributes"從 「Pro Git book」))

一旦你聲明在當地混帳配置文件管理器的內容驅動程序,它會自動運行,git commit,恢復該文件。
或者即使XCode修改了該值,它也會認爲該文件在git diff/git status上保持不變。

請參閱「Best practice - Git + Build automation - Keeping configs separate」中的完整示例。