工具推荐: Diff Tools
目录
介绍一些 Diff 工具。
Vim Diff
# 命令行启动
vim -d file1 file2
nvim -d file1 file2
# 水平分割
vim -d -o file1 file2
# 比较多个文件
vim -d file1 file2 file3快捷键:
]c- 跳到下一个差异[c- 跳到上一个差异do/:diffget- 从另一个窗口获取修改dp/:diffput- 将修改放到另一个窗口:diffupdate- 更新差异:diffoff- 关闭 diff 模式
Git
git config --global diff.tool vimdiff
git config --global difftool.prompt false
git difftoolSVN
创建脚本 svnvimdiff:
#!/bin/bash
vimdiff "$6" "$7"配置:
# ~/.subversion/config
[helpers]
diff-cmd = /path/to/svnvimdiff
# 或临时使用
svn diff --diff-cmd vimdiffdiff-so-fancy
安装
# macOS
brew install diff-so-fancy
# Ubuntu/Debian
sudo apt install diff-so-fancyGit
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
git config --global interactive.diffFilter "diff-so-fancy --patch"
git diffSVN
# ~/.subversion/config
[helpers]
diff-cmd = diff-so-fancy
# 或临时使用
svn diff --diff-cmd diff-so-fancygit-delta
安装
# macOS
brew install git-deltaGit
git config --global core.pager delta
git config --global interactive.diffFilter "delta --color-only"
git config --global delta.navigate true
git config --global delta.side-by-side true
git config --global delta.line-numbers true
git diffSVN
创建脚本 svndelta:
#!/bin/bash
diff -u "$6" "$7" | delta配置:
# ~/.subversion/config
[helpers]
diff-cmd = /path/to/svndeltaicdiff
安装
# macOS
brew install icdiff
# pip
pip install icdiffGit
git config --global icdiff.options '--highlight --line-numbers'
git difftool --extcmd icdiffSVN
svn diff --diff-cmd icdiffcolordiff
安装
# Ubuntu/Debian
sudo apt install colordiff
# macOS
brew install colordiffGit
git config --global alias.dic "diff --color"
git dicSVN
# ~/.subversion/config
[helpers]
diff-cmd = colordiff
# 或临时使用
svn diff --diff-cmd colordiffydiff
- GitHub: https://github.com/ymattw/ydiff
安装
pip install ydiffGit
ydiff -s # 代替 git diff
ydiff -ls # 代替 git logSVN
svn diff | ydiff -sdifftastic
基于语法树的 diff 工具,语法感知。
安装
# macOS
brew install difftastic
# 其他系统
# 从 GitHub releases 下载Git
git config --global core.pager difftastic
git config --global diff.external difftastic
git diffSVN
创建脚本 svndifft:
#!/bin/bash
difft "$6" "$7"配置:
# ~/.subversion/config
[helpers]
diff-cmd = /path/to/svndifftKaleidoscope
macOS 专业的 diff 和 merge 工具。
安装
从官网下载:https://kaleidoscope.app/
Git
在 Kaleidoscope 菜单中选择 “Integration…”,选择设为默认工具。
或手动配置:
git config --global difftool.Kaleidoscope.cmd "ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false
git config --global diff.tool Kaleidoscope
git difftoolSVN
# ~/.subversion/config
[helpers]
diff-cmd = /Applications/Kaleidoscope.app/Contents/Utilities/ksdiff
# macOS 路径
diff-cmd = /Applications/Kaleidoscope.app/Contents/MacOS/ksdiffBeyond Compare
跨平台的 diff 和 merge 工具。
安装
从官网下载:https://www.scootersoftware.com/
Git
# macOS
git config --global diff.tool bcomp
git config --global difftool.bcomp.cmd "/usr/local/bin/bcomp \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false
# Windows
git config --global diff.tool bc
git config --global difftool.bc.path "C:/Program Files/Beyond Compare 5/bcomp.exe"
git difftoolSVN
创建脚本 bcompare_svn:
#!/bin/bash
/usr/local/bin/bcompare "$6" "$7" &
exit 0配置:
# ~/.subversion/config
[helpers]
diff-cmd = /path/to/bcompare_svnMeld
开源的跨平台 diff 工具。
安装
# macOS
brew install meld
# Ubuntu/Debian
sudo apt install meldGit
git config --global diff.tool meld
git config --global difftool.meld.cmd "meld \"$LOCAL\" \"$REMOTE\""
git difftoolSVN
# ~/.subversion/config
[helpers]
diff-cmd = meld
# 或临时使用
svn diff --diff-cmd meldVS Code
安装
下载:https://code.visualstudio.com/
Git
安装扩展 “Meld Diff” 或其他 diff 扩展。
SVN
安装扩展后使用扩展的 SVN 集成。
Others
diffs.com
专门来渲染 diffs 的界面,语法高亮基于 Shiki,而且可定制性很强,我觉得非常漂亮,如果大家有类似需求,比如渲染一些 diffs 界面就可以用这个。
diff-highlight
Git 自带的 diff 高亮工具。
git config --global core.pager "diff-highlight | less"