如何自動解決 Git 合併衝突並偏向任意一方?


作為一名開發者,你可能熱愛編碼,但同時也會對 Git 中不可避免的合併衝突感到頭疼。這些衝突可能會打斷你的工作流程,浪費寶貴的時間。幸運的是,有一種方法可以自動化解決衝突的過程,確保你能夠保持流暢的工作。在這篇文章中,我將向你展示如何在 Git 中設定自動衝突解決,並偏向你的更改或來自其他分支的更改。

我第一次遇到合併衝突

我記得我第一次遇到重大的合併衝突,就像昨天發生的一樣。我剛剛完成了一個大型功能,並很高興地合併我的分支。然而,我並沒有因此而慶祝,而是花費了幾個小時手動解決衝突。這至少說,是非常令人沮喪的。那時我意識到必須有更好的方法。

理解合併衝突

在我們深入瞭解解決方案之前,讓我們快速回顧一下什麼是合併衝突。當兩個分支對程式碼的同一部分進行了更改時,Git 會對保留哪些更改感到困惑,從而導致合併衝突。

為什麼自動化衝突解決?

如果你曾經花費數小時手動解決衝突,你就知道這有多痛苦。自動化此過程不僅可以節省時間,還可以降低人為錯誤的風險,確保你的工作流程保持高效和無壓力。

設定自動衝突解決

以下是重點——如何設定 Git 以自動解決衝突並偏向一方。有兩種常見的情況:偏向你的更改(theirs)或來自其他分支的更改(ours)解決衝突。

1. 偏向你的更改解決衝突

要自動偏向你的分支解決衝突,請使用以下命令:

git merge -X theirs <branch-name>

<branch-name> 替換為你正在合併到當前分支的分支名稱。'-X theirs' 選項告訴 Git 在發生衝突時使用來自你的分支的更改。

2. 偏向其他分支解決衝突

相反,如果你想優先考慮來自其他分支的更改,請使用:

git merge -X ours <branch-name>

這次,'-X ours' 選項指示 Git 保留你正在合併到的分支的更改。

將其設為預設行為

如果你發現自己總是偏向一方解決衝突,可以將此行為設定為 Git 儲存庫的預設行為。

在你的儲存庫中開啟 .gitconfig 檔案,並新增以下內容:

[merge] conflictstyle = merge default = <side>

根據你的偏好,將 <side> 替換為 'ours' 或 'theirs'。

注意

雖然自動衝突解決可以節省大量時間,但它並不總是最佳解決方案。自動解決衝突意味著你可能會錯過來自其他分支的重要更改。始終檢查合併後的程式碼,以確保沒有忽略任何關鍵更新。

結論

Git 合併衝突不必成為挫折的來源。透過自動化解決過程,你可以簡化你的工作流程,並將精力集中在最重要的事情上:編寫優秀的程式碼。無論你優先考慮自己的更改還是來自其他分支的更改,關鍵在於理解並明智地使用這些命令。

記住,目標是更聰明地工作,而不是更努力地工作。祝你編碼愉快!

更新於: 2024年7月25日

235 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告