git difftool配置

git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool
git config --global difftool.trustExitCode true
git config --global mergetool.trustExitCode true

或修改~/.gitconfig

[diff]
    tool = vimdiff
[merge]
    tool 

使用

git difftool 文件
可以使用git d –stage 比对working和staged暂存区 使用git d HEAD 比对working和当前版本库的差异。
如果有多个文件有差异, 在vim里退出后,会自动打开下一个差异文件,需要设置信任退出后 :cq!退出全部
如果有长文件修改后, 差异里默认只会显示有修改的上下文位置, 可以把cursor移动到 折叠部位的+的位置再向右移,就会打开被折叠的代码块
也能用z开头的那些快捷键 zr zm za zc zo
:diffupdate :diffu 重计算差异区块
:set noscrollbind  解除滚动绑定
:set scrollbind  两边滚动绑定
[c
]c
上下处不同跳转

[range]diffget  do
[range]diffput   dp
在两边处理代码块 do是从另一个窗口复制过来  dp相反
do dp是整块操作  细一点的需要 用diffget difput
操作完后diffu一下更新


如果想查看修改的所有文件的目录 ,git difftool -d

如果需要编辑

:set noro

颜色配置

:help highlight-groups
然后 把想要修改的颜色配置到.vimrc里就行了,例如我配置(抄)的 add 绿 modify黄 delete红
" 新增的行
hi DiffAdd    ctermbg=235  ctermfg=108  guibg=#262626 guifg=#87af87 cterm=reverse gui=reverse
" 变化的行
hi DiffChange ctermbg=235  ctermfg=103  guibg=#262626 guifg=#8787af cterm=reverse gui=reverse
" 删除的行
hi DiffDelete ctermbg=235  ctermfg=131  guibg=#262626 guifg=#af5f5f cterm=reverse gui=reverse
" 变化的文字
hi DiffText   ctermbg=235  ctermfg=208  guibg=#262626 guifg=#ff8700 cterm=reverse gui=reverse

鱼果是在windows 里用git bash的话,需要设置这个

set termguicolors
posted @ 2022-11-29 18:14  马肯尼煤牙巴骨  阅读(648)  评论(0)    收藏  举报