V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
doublenine99
V2EX  ›  程序员

关于代码对比工具

  •  
  •   doublenine99 · 2024-01-19 11:26:41 +08:00 · 5874 次点击
    这是一个创建于 377 天前的主题,其中的信息可能已经有所发展或是发生改变。
    除了 Beyond Compare ,还有哪些比较好使的本地代码 diff 工具呢?
    我个人感觉 Beyond Compare 用的不怎么顺手,还要付费
    55 条回复    2024-01-22 16:25:06 +08:00
    UKnowMe
        1
    UKnowMe  
       2024-01-19 13:08:48 +08:00
    JB 系列?我用 VS 写代码,但是 diff 我还是用 rider
    unt
        2
    unt  
       2024-01-19 13:11:51 +08:00
    同问超越 bc 的存在
    jazzsama
        3
    jazzsama  
       2024-01-19 13:27:17 +08:00   ❤️ 1
    Beyond Compare 又轻,功能又全,哪里用着不顺手呢?(疑问句非杠)
    tzxxxx
        4
    tzxxxx  
       2024-01-19 13:30:02 +08:00
    winmerge + vscode ,都免费
    ooops
        5
    ooops  
       2024-01-19 13:30:52 +08:00
    之前试了一圈,要说 merge 的话,基本没有。JB 家的可以,但平时用 Xcode 工程太大所以没办法。diff 的话各有特色,diff 算法有点差异没有一个完美的。
    yisier
        6
    yisier  
       2024-01-19 13:34:06 +08:00   ❤️ 1
    如果只是简单的单文件对比,可是尝试下我这个在线版的,https://1024url.com/text-diff
    sleepm
        7
    sleepm  
       2024-01-19 13:41:05 +08:00
    RoshanWu
        8
    RoshanWu  
       2024-01-19 13:53:53 +08:00
    clino
        9
    clino  
       2024-01-19 13:56:49 +08:00
    Beyond compare 是最好的,merge 代码的时候还可以 3 路对比,是我自己掏钱购买的第一个工具软件。
    debuggerx
        10
    debuggerx  
       2024-01-19 14:18:21 +08:00   ❤️ 3
    JB 家任意 IDE ,比如社区版 pycharm ,都可以在命令行:
    pycharm diff [path1] [path2]
    打开代码对比页面对比任意两个文件或文件夹了
    确保命令加入了系统环境变量,一般可以在 Toolbox 里设置自动生成 shell 脚本,这样在安装 IDE 的时候会自动生成命令。
    没有的话也可以手动指定路径比如:
    /home/xxx/.local/share/JetBrains/Toolbox/apps/android-studio/bin/studio.sh diff [path1] [path2]
    这样用。
    我在系统里加了个命令别名:alias idiff='pycharm diff'
    这样需要对比代码的时候只要 idiff [path1] [path2] 就可以,非常方便
    doublenine99
        11
    doublenine99  
    OP
       2024-01-19 14:18:50 +08:00
    @jazzsama 在 mac 上开久了占用内存变得很大
    doublenine99
        12
    doublenine99  
    OP
       2024-01-19 14:19:12 +08:00
    @debuggerx 好的好的 我试试
    dayeye2006199
        13
    dayeye2006199  
       2024-01-19 14:33:20 +08:00
    我一般就是裸 diff
    qfdk
        14
    qfdk  
       2024-01-19 15:09:15 +08:00
    简单的法子 开个 git 项目 然后 push 上去..... 接着把要对比的文件搞过来 就能用 ide 的 gui 了
    BeforeTooLate
        15
    BeforeTooLate  
       2024-01-19 15:13:03 +08:00
    用来用去还是回归 Beyond Compare 了,没办法实在太好用了
    issakchill
        16
    issakchill  
       2024-01-19 15:21:05 +08:00
    简单对比 vs 自带
    1018ji
        17
    1018ji  
       2024-01-19 15:35:06 +08:00
    我还是 bc 吧,其余不习惯
    JiaBao
        18
    JiaBao  
       2024-01-19 16:20:16 +08:00   ❤️ 1
    Meld
    S2Line
        19
    S2Line  
       2024-01-19 16:37:56 +08:00
    bc 是 YYDS ,没见过比它更强的了
    tomkliyes
        20
    tomkliyes  
       2024-01-19 16:38:18 +08:00
    只是简单对比多个文件的话,vs code 自带命令就有 compare active file with...
    ho121
        21
    ho121  
       2024-01-19 16:40:25 +08:00
    用 vimdiff 的瑟瑟发抖
    onikage
        22
    onikage  
       2024-01-19 17:13:54 +08:00
    写代码手动调用 java-diff-utils?
    marding
        23
    marding  
       2024-01-19 17:24:02 +08:00
    jb 系列挺顺的, 还没用过其他的
    imnpc
        24
    imnpc  
       2024-01-19 17:27:14 +08:00
    Beyond Compare 每年黑五好像有活动的 我是活动时候买的和升级的
    lstz
        25
    lstz  
       2024-01-19 17:35:56 +08:00 via Android
    lstz
        26
    lstz  
       2024-01-19 17:36:28 +08:00 via Android
    代码转换还是硬需求,我到时候加入多种模式进去
    lstz
        27
    lstz  
       2024-01-19 17:38:50 +08:00 via Android
    抱歉,我指的是代码比较,包括 code merge 类的
    faimin
        28
    faimin  
       2024-01-19 19:37:05 +08:00
    Kaleidoscope ,我觉得比 Beyond Compare 好用
    jianghu52
        29
    jianghu52  
       2024-01-19 19:42:04 +08:00
    连 bc 都看不上,你这要求太高了。我公司给全体人买了 bc 的版权,可惜狗屎的日本公司非要用自己环境开发,于是我只能用狗屎的 win merge 。你用过了。就知道 bc 是多么强大。多么好了。
    crackidz
        30
    crackidz  
       2024-01-19 20:57:07 +08:00
    VSCode 自己就带代码对比的
    shijingshijing
        31
    shijingshijing  
       2024-01-19 22:21:29 +08:00
    BC 最神的地方在于把左右两边同一行拿到最下满逐个字对比,我还没见过第三个有这样设计的。前面几个提到的 meldmerge ,各种 diff 都没有。
    mrwangjustsay
        32
    mrwangjustsay  
       2024-01-19 22:47:06 +08:00
    jaoyina
        33
    jaoyina  
       2024-01-19 23:19:03 +08:00
    BC ,能再便宜点就好了。
    pinocc012
        34
    pinocc012  
       2024-01-19 23:37:09 +08:00
    差异小的时候 bc 还是可以的,一旦差异大了,估计也没啥软件好用
    gdw1986
        35
    gdw1986  
       2024-01-19 23:48:18 +08:00 via Android
    现在 ide 都带,比如 vscode ,不过比较烦的是要两个文件比较,临时粘过去的还要存一下才行
    clemente
        36
    clemente  
       2024-01-20 00:20:03 +08:00
    vimdiff
    cdwyd
        37
    cdwyd  
       2024-01-20 00:25:04 +08:00 via Android
    @gdw1986 不需要保存,在已打开文件列表里面选择两个要比较的文件然后右键就可以比较了。
    james122333
        38
    james122333  
       2024-01-20 00:27:08 +08:00 via Android
    只用命令行工具 顶多加上 vimdiff
    james122333
        39
    james122333  
       2024-01-20 00:31:37 +08:00 via Android
    @shijingshijing

    逐字对比? 是指高亮? 高亮肯定有 diff 出统一格式也都是上下两行 不知道这什么意义...
    shijingshijing
        40
    shijingshijing  
       2024-01-20 01:20:39 +08:00
    james122333
        41
    james122333  
       2024-01-20 02:26:59 +08:00 via Android
    @shijingshijing

    果然我没会错意 这真的还好 把两行取出来存暂存档再 diff 再用 diff-highlight 就可以实现的东西
    james122333
        42
    james122333  
       2024-01-20 02:30:29 +08:00 via Android
    james122333
        43
    james122333  
       2024-01-20 03:23:15 +08:00 via Android
    @shijingshijing

    还可以不用暂存档会更好点
    shicheng1993
        44
    shicheng1993  
       2024-01-20 08:46:50 +08:00
    shijingshijing
        45
    shijingshijing  
       2024-01-20 10:26:04 +08:00
    @james122333

    把两行取出来存暂存档再 diff 再用 diff-highlight 就可以实现的东西
    ---------------------------------------------------------------------------
    你不觉得还要这样几个操作才能看一行代码很麻烦么?一般人做对比的时候,先看文字块是否有很大差异,如果只是增删这种整块直接略过,碰到这种一行里面改了几个字的,光标移到这一行,然后直接看下面显示具体那几个字的差异,这样不是更轻松更符合人的直观操作么?
    james122333
        46
    james122333  
       2024-01-20 10:50:53 +08:00 via Android
    @shijingshijing

    写脚本配上 vi 等编辑器快捷键 通常我也没这种需求 因为我都是直接看 diff 档没有分割两个视窗 直接就是对照上下文
    HB9527
        47
    HB9527  
       2024-01-20 10:52:49 +08:00
    neovim + diffview 🐶
    coolloves
        48
    coolloves  
       2024-01-20 10:59:32 +08:00
    非专业码农,比对用 notepad-- 自带
    james122333
        49
    james122333  
       2024-01-20 10:59:48 +08:00 via Android
    @shijingshijing

    我方才就弄了一个了 因为发现 diff-highlight 有缺陷只能对应头尾 还加了个参数可以色彩填充缺少的区块 这样两行长度一样进行比较
    yougotme
        50
    yougotme  
       2024-01-20 11:35:42 +08:00 via iPhone
    bc 正版用户路过,最好用的对比工具之一
    arischow
        51
    arischow  
       2024-01-20 13:17:43 +08:00
    Rnreck
        52
    Rnreck  
       2024-01-20 13:37:42 +08:00
    @jaoyina #33 前端时间 20%优惠呢
    retrocode
        53
    retrocode  
       2024-01-20 14:57:34 +08:00
    我是文件夹对比用 bc, 单文件或者文本, 直接用的 utools 的代码对比插件, 更轻量些, 两边粘贴对比
    PopeyeLau
        54
    PopeyeLau  
       2024-01-20 16:26:23 +08:00
    vscode 不是自带吗

    code --diff a.js b.js
    XXWHCA
        55
    XXWHCA  
       2024-01-22 16:25:06 +08:00
    vscode + gitlens
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   707 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:47 · PVG 06:47 · LAX 14:47 · JFK 17:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.