在 Git 合併中使用 theirs 選項

Yahya Irmak 2023年1月30日
  1. 在 Git 中將 git merge 命令與 theirs 一起使用
  2. 使用 --strategy-option 解決 Git 中的衝突
  3. 在 Git 中使用臨時分支進行合併
在 Git 合併中使用 theirs 選項

在使用 Git 工具開發軟體時,你可以為不同的功能建立不同的分支。但是不同分支之間可能存在衝突。

本文將解釋如何使用帶有 theirs 選項的 git merge 命令來解決衝突。

在 Git 中將 git merge 命令與 theirs 一起使用

git merge 命令可以合併兩個或多個開發歷史。但是,由於分支之間的衝突,有時無法完成此合併。

ourstheirs 中的檔案應丟棄以解決此衝突。

ours 是指具有 Git 歷史許可權的原始工作分支,theirs 是指包含新應用提交的分支。

你可以使用 git merge -s ours 丟棄 ours 中的更改。此命令會丟棄來自其他分支的所有更改,並使你分支上的檔案保持不變。

當你下次從另一個分支合併時,Git 只會考慮從這一點開始所做的更改。但是,-s 選項不能與 theirs 一起使用。

使用 --strategy-option 解決 Git 中的衝突

或者,我們可以將 theirs-X--strategy-option 選項一起使用。

-X-s 選項之間的主要區別在於 -X 執行常規遞迴合併,使用所選一側解決任何衝突,而 -s 將合併更改為完全忽略另一側。

以下命令使用 theirs 解決任何衝突。

git merge -X theirs branchname

在 Git 中使用臨時分支進行合併

使用下面的命令將 test2 合併到簽出的 test1 中。

切換到 test1 分支。

git checkout test1

合併提交而不會發生衝突。ours 的內容稍後將被丟棄。

git merge -s ours test2

建立一個臨時分支。

git branch temp

使用 git reset 命令設定 HEAD。它從 test2 分支獲取內容。

git reset --hard test2

重置為合併提交,但使用 git reset --soft 命令保留內容。

git reset --soft temp

test2 的內容更改合併提交的內容。

git commit --amend

刪除我們之前建立的臨時分支。

git branch -D temp

你可以看到合併後的提交僅包含 test2 的內容。

git diff HEAD test2
作者: Yahya Irmak
Yahya Irmak avatar Yahya Irmak avatar

Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.

LinkedIn

相關文章 - Git Merge