vimdiff解决git merge冲突
生活随笔
收集整理的這篇文章主要介紹了
vimdiff解决git merge冲突
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
? ? ? ? GIT?合并時,順利的話皆大歡喜,如果碰到沖突真是件痛苦的事。本文本描述怎樣利用vimdiff這一強大的工具解決沖突。
?
配置git?的merge工具
git?配置文件為~/.gitconfig
執行以下命令:
git config --global merge.tool vimdiff git config --global merge.conflictstyle diff3 git config --global mergetool.prompt false#讓git mergetool不再生成備份文件(*.orig) git config --global mergetool.keepBackup false?
?
解決沖突
git mergetool filename文件名參數是可選的。如果不傳文件名,那么將會自動挨個打開有沖突的文件。界面如下:
上一層三個小窗口分別對應:
- LOCAL?buffer: 當前分支
- BASE?buffer: 兩個分支共同祖先,代表兩個分支修改前
- REMOTE?buffer: 需要合并到當前分支的分支
下層窗口為:
- MERGED?buffer: 合并后的,即有沖突的
vimdiff使用
鼠標移動到MERGED窗口(CTRL-w切換窗口),
:diffget REMOTE # 獲取REMOTE的修改到MERGED文件, 忽略大小寫 :diffg BASE # get from base :diffg LOCAL # get from local
注意:通過diffget只能選取local, base, remote三種的一種,要想都需要3種或者兩種,只能通過修改MERGED文件
修改完成后, 保存
:wqa突解決完,commit
git commit刪除orig文件
find . -name "*.orig" | xargs rm?
vimff命令參考:
]c # nect difference [c # previous difference zo # open folded text zc # close folded text zr # open all folds zm # close all folds :diffupdate # re-scan the file for difference do # diff obtain dp # diff put :set diffopt+=iwhite # to avoid whitespace comparison Ctrl+W+W # toggle between the diff columns Ctrl+W+h/j/k/l # 移動鼠標到不同窗口 :set wrap # wrap line :set nowrap :syn off # remove colors
?
總結
以上是生活随笔為你收集整理的vimdiff解决git merge冲突的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java防报毒_java接口如何有效防止
- 下一篇: @RunWith的作用