2013-05-15 122 views
2

當我在git中進行pull操作並且必須手動解決衝突時,我會執行rebase並且最終不得不再次解決相同的衝突。我想找出一個過程,我只需要解決一次衝突。以下是對我目前發生的過程的更詳細的描述。問題在git中解決衝突

1)做一個git pull表示與我的本地更改有衝突。
2)運行'git mergetool'並手動解決所有衝突
3)對合並分辨率變化進行'git add'和'git commit'。
4)做一個'git rebase origin/master'讓我的本地提交放在最上面。
5)這是問題 - 系統提示我第二次解決步驟2中的相同衝突。
6)做一個'git rebase -continue'

我想從這個過程中消除步驟2)或步驟5)。

回答

4

你應該嘗試git rerere

git config --global rerere.enabled true 

已啓用rerere之後,Git會記住你已經完成了衝突解決,並在下次自動套用。

1

你可以通過重訂,而不是合併

git pull --rebase 

這將首先提取更改您的遠程分支,那麼它會立即嘗試重訂在遠程尖端的頂部您的本地提交做拉科。

這樣你就只需要做一個衝突解決步驟。

您可以配置變基成爲一個分支默認拉行爲(在這種情況下,「主」):

git config branch.master.rebase true 

您還可以設置底墊成爲所有所有新枝默認拉行爲知識庫:

git config --global branch.autosetuprebase always