2017-09-29 57 views
0

我剛剛嘗試了以下these Atlassian Bitbucket instructions解決合併衝突,並發現它無法正常工作。Git合併指令不能按預期工作

如果遵循這些說明,那麼有時在「開發」分支中的更改將覆蓋「源分支」中所做的更改。

例如,在斯威夫特文件(注意,這是兩個版本和行號都包括在內):

這是發展和Git是試圖讓這一個。

required init?(map: Map){ // 67 
    super.init()   // 68 
    mapping(map: map)  // 69 
    if origin == nil { // 70 
     origin = ""  // 71 
    }      // 72 
}       // 73 

這是源文件

required init?(map: Map){ // 67 
    super.init()   // 68 
    mapping(map: map)  // 69 
}       // 70 

正如你可以看到「源科」擁有的代碼刪除,但混帳認爲這些線「發展」應該將它們添加回。 (對,如果我按照Atlassian的指示將開發合併到我的分支中)

這是不正確的,因爲我的分支中的所有內容都應該嘗試覆蓋develop分支中的每個文件/更改,並在存在衝突時引發衝突一。

我要上菜還是這些說明不正確?

也可以有人建議使用我的分支作爲全部和結束所有衝突解決?

(我覺得我需要有「發展」簽出,然後在「特性分支」合併到這一點。獲得這雖然跳過拉請求步驟的感覺......不想)

+0

不,我們不能「看到」的是什麼已經從你呈現什麼樣刪除每一個變化。要看到這一點,我們需要知道什麼發生了變化,以及哪些分支正在合併到哪個分支中。唯一一次通常會發生合併衝突的是對相同或相鄰代碼行進行編輯的時間。 – crashmstr

+0

@crashmstr爲了清晰起見,我添加了行號並將兩個文件拆分爲單獨的代碼塊。 – user1567453

+0

您是否將'source'合併到'develop'中,並且這些文件和那些行*在'develop'中沒有改變?另外,如果您要執行拉取請求,則不要手動合併這些請求。拉取請求將在批准後執行。 – crashmstr

回答

0

這是因爲在源代碼分支被分支並檢出之後,開發分支對它做了「回覆」。這給了開發分支在歷史上更高的優先級,因此git會拒絕我的分支中的任何更改。 (所有20個文件,誰知道有多少行代碼)

與同事說起來,事實證明,由於偶然融入起源/發展而完成了復原。

簡單規則 - 如果其他開發人員有更改的分支,請勿使用「反向提交」。

做那^覆蓋做其他開發當地的分支機構時,他們合併XD