2015-12-09 78 views
2

我有一個分支DEV,我從它創建了一個分支ESLINT兩個分支都修改了,如何正確合併它們?

分支ESLINT應該舉行一個巨大的編碼風格修改(我沒有編碼風格之前,現在我有一個),所以所有文件是beeing它修改(壓痕,unusedd-VAR,非法的空格,...)。

在這個ESLINT分支的工作,我不得不&添加新文件的功能在現有文件分支DEV(新功能,而不是一個超級乾淨的工作流程,所以我現在直接在DEV開發新的功能)。

我想叩頭我怎麼可以更新ESLINT與我在DEV(新文件在現有文件&新文件的內容)

我雖然做git checkout ESLINT然後git merge DEV所做的修改,但我害怕它可能造成的混亂。

+0

您是否熟悉* merge confilcts *和* resolving * them? –

+0

即使您遇到麻煩,您也可以(幾乎?)始終使用'reflog'恢復到當前狀態。 – Jepessen

回答

2

會有很多衝突,讓你自己解決它們。

通常的做法是在合併之前重新綁定當前開發的功能部件。這會產生衝突,但是如果在這段時間內開發不會發生變化,那麼以下合併重新開發將變得簡單。

所以做git checkout -b ESLINT-rebased && git rebase DEV(第一個是保存以前的狀態,以防萬一你完全失去了),而在ESLINT,然後讀它說什麼。 它會列出文件衝突和標記這些內部與<<<<<(你可以grep爲) - 你可以閱讀有關解決例如here

0

我不認爲你可以避免衝突。如果您想一步一步地完成這項任務,您可以逐個挑選提交,從一個分支到另一個分支,併爲每個分支糾正衝突,直到完成兩個分支。

1

我建議在看git rebase。你會是明智的嘗試在一個單獨的分支,因爲它同樣可以得到混亂,尤其是如果你不完全熟悉git的,但這樣的:

git checkout ESLINT 
git checkout -b ESLINT-rebase-test 
git rebase DEV 

這是什麼應該做的實際上是公園您對ESLINT所做的更改,因爲它最後與DEV分離,然後在DEV中一次重新應用一個提交。您仍然可以獲得衝突,您可以像合併衝突一樣解決衝突,並且我建議您在嘗試此操作之前閱讀有關底座的更完整教程,以便正確理解如何處理這些衝突。

相關問題