2011-03-25 107 views
8

我剛開始關閉master分支的git分支,爲我的應用程序添加一些功能,這也會涉及一些接口的增加。Git,XIBs,合併

但是,我已經有一些其他功能的分支也涉及到一些接口添加。

當我完成這些分支後,我能夠將這兩個分支合併爲主分支嗎?是否有一些很好的做法,可能會以某種方式構建xib-文件,以便後續合併?

回答

6

如果我在一個分支中包含三個選項卡的選項卡視圖,另一個選項卡視圖中包含三個選項卡,並且其中兩個選項卡相同,而一個選項則不相同我得到一個四選項卡式標籤視圖合併

你將極有可能a conflict後,如果修改線(涉及標籤定義)是相同的。
只有在手動合併解決方案期間,您錯誤地留下了額外的選項卡定義,纔會有4個選項卡。

查看Painless Merge Conflict Resolution in Git瞭解合併分辨率的文章。

3-way merge


話雖這麼說,對於xibs具體而言,它的表現似乎不錯:

隨着Interface Builder的3版本,新的文件格式(擴展.xib)有已被添加,其功能與.nib相同,只是它存儲在一個平面文件中,使其更適合存儲在版本控制系統和過程中用diff等工具唱歌。

this thread總結了實際感受:

怎樣的Git能夠合併更改XIBs?
XIB的結構不是線性的;不能保證你只能換出XIB的一部分,然後用可用的XIB結束。
除非Git瞭解Apple附近的XIB,否則我不認爲 可以保證可以正常工作。

這將使你額外的步驟,在發生衝突的情況下,將您的合併決議前,打開修改.xib文件在您XCode4編輯器,並檢查是否都沒問題。

XCode4 xib file Editor

一旦目測完成,record the merge resolution through rerere,你將在未來have potentially automatic resolution

+0

謝謝。是的,我知道git中的衝突解決方法,這個問題不是關於git的問題,而是關於git中的xibs *(xibs是Mac OS X應用程序的接口,在可視化編輯器Interface Builder中創建的,它們差不多不可能讀)。 – Ibolit 2011-03-25 18:43:00

+0

@Ibolit:我明白。這似乎只會在使用'git rerere'錄製合併解析結果之前,通過額外的視覺檢查來完成。更多在我更新的答案。 – VonC 2011-03-25 19:36:17

+0

非常感謝。我會試一試:) – Ibolit 2011-03-25 19:53:48

0

當然,你將能夠將它們合併爲主。不管你如何構建你的文件,git都不關心這個問題。

+3

這是一個過於簡單化:OP詢問兩個分支對同一個事物進行修改,即界面。他們可能會導致合併衝突。可以解決的,是的,但有些事要注意。 – Cascabel 2011-03-25 17:02:52

+4

事情是,當我解決其他文件中的衝突,我明白我在做什麼,我知道什麼特定的線的意思。在這種情況下,我會看到一些xml,這對我來說並不意味着什麼。如果我在合併時犯了一個錯誤,我幾乎沒有機會找到正確的錯誤。再一次,如果我在一個分支中有三個選項卡的選項卡視圖,另一個選項卡視圖中有三個選項卡,並且其中兩個選項卡相同,一個不相同,我會得到四個合併後的tabbed選項卡視圖? – Ibolit 2011-03-25 17:20:41