关于刚刚 git 的问题描述的不清楚,不能编辑主题了,重新发下问题: git 如何对比服务器上最新的代码和本地的区别? git diff 对比和我预想不一样 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
lyvv
V2EX    git

关于刚刚 git 的问题描述的不清楚,不能编辑主题了,重新发下问题: git 如何对比服务器上最新的代码和本地的区别? git diff 对比和我预想不一样

  •  
  •   lyvv 217 天前 3024 次点击
    这是一个创建于 217 天前的主题,其中的信息可能已经有所发展或是发生改变。
    关于刚刚 git 的问题描述的不清楚,不能编辑主题了,重新发下问题:git 如何对比服务器上最新的代码和本地的区别? git diff 对比和我预想不一样

    *提交的记录可以看这张大图,请大家看了这个大图再评论啊,感谢大家呀



    *working 代码已提交如图,位于图片 2 位置 ,图片 1 位置是最新代码

    点击 图片 1 位置 ,会对比 1 位置 和 5 位置 的差异
    点击 图片 2 位置 ,会对比 2 位置 和 3 位置 的差异

    *但是我想要对比 图片 1 位置 和 图片 2 位置 的差异,在 vscode 中无法直接查看对比。

    *在前一个帖子里面,下面这个方式不行,提示无差异。不知道对比的是哪 2 个 commit...
    git fetch origin
    git diff origin/dev dev

    *使用 Git Graph 插件也是一样的问题。


    *只有下面这个办法可行,和我手动 git clone 一个新目录,结果一致。
    git diff 图片 1 位置 commit1 图片 2 位置 commit2

    *但是这个办法,操作太麻烦,需要手动复制 commit id ,而且只能在 cmd 里面查看
    能否在可视化界面里面查看?
    19 条回复    2025-05-14 10:32:55 +08:00
    sibusana
        1
    sibusana  
       217 天前
    git history 插件可以的
    hwdq0012
        2
    hwdq0012  
       217 天前
    有 ssh 吗,我用 vim+ git 帮你看
    Trim21
        3
    Trim21  
       217 天前 via Android
    你图里根本就没有 dev 这个 branch 啊
    lyvv
        4
    lyvv  
    OP
       217 天前
    @hwdq0012 加个 qq ,用 todesk 或者向日葵?
    837666626

    特别感谢啊!!
    lyvv
        5
    lyvv  
    OP
       217 天前
    @Trim21 不理解你说的.....我全部在一个分支里面工作
    hwdq0012
        6
    hwdq0012  
       217 天前
    @lyvv 加了,没动静
    lyvv
        7
    lyvv  
    OP
       217 天前
    @hwdq0012 谢谢大佬,用 GitLens 可以对比某个具体的提交和当前的对比。
    但是在使用上,界面操作太多。

    大佬建议,还是使用命令行。

    现阶段,如果要图形化的查看,我觉得直接使用 git clone 到新目录,再使用 beyond compare 对比最快。

    再次感谢大佬。 @hwdq0012
    networm
        8
    networm  
       217 天前
    Fork 可以按 Ctrl 选中两个提交直接比较 1 和 2
    hwdq0012
        9
    hwdq0012  
       217 天前
    @lyvv #7 有的 repo clone 也很耗时的,熟悉就好

    还有我看楼里把 commit 和分支区分了, 其实每一个 commit 都是一个分支, dev,master,head 这些只是一些会自动更新的游标,和 commit 没有本质区别
    k9990009
        10
    k9990009  
       217 天前 via Android
    用 IDEA 呗,我经常在几个客户分支的代码合来合去,有一些的定制开发合并在一起
    Cu635
        11
    Cu635  
       217 天前
    不同分支下的 commit 的 id 也是唯一的,可以用 2 个 commit id 来 diff 。具体怎么用见下面的链接:

    https://www.worldhello.net/gotgit/02-git-solo/080-git-history-travel.html#git-diff
    msg7086
        12
    msg7086  
       217 天前
    你这问题确实描述得不清楚,你想问的是 merge commit 节点和他上一个并入节点之间的 diff 。
    git 的 merge commit 节点很多地方行为是不太一样的,因为毕竟有两个父节点。
    fpk5
        13
    fpk5  
       217 天前
    Git 的 merge 是一个三路合并,一个 merge commit 是有两个 parent 的。你只点击 merge commit ,谁知道你是想看与哪一个 parent 的 diff ?所以默认显示的是与 merge base (提交 5 )的 diff ,这个是没有歧义的。你想比较 1 和 2 就用`git diff SHA2 SHA1`。
    julyclyde
        14
    julyclyde  
       217 天前
    需要 fetch 回来然后再在本地 diff 吧?
    jardel
        15
    jardel  
       217 天前
    vscode 可以使用 GitLens 插件 在 gitlens inspect 中打开 search&compare 就有对比多个 分支 tag ref 的选项
    JackCh3ng
        16
    JackCh3ng  
       217 天前
    git fetch
    git diff FETCH_HEAD HEAD
    lyvv
        17
    lyvv  
    OP
       217 天前
    @msg7086 其实我只想对比:服务器最新代码和我本地的区别(无论是否提交情况)

    1 楼附图上,是位置 1 和位置 2 ,目前的结论是只能用 git diff commit1 commit2 ,这个操作非常麻烦...

    貌似没有方便的对比方式
    JackCh3ng
        18
    JackCh3ng  
       217 天前
    @JackCh3ng #16 命令行图形化对比可以看下这个 git 插件 https://github.com/dandavison/delta
    JackCh3ng
        19
    JackCh3ng  
       217 天前
    如果这个命令很常用可以配置别名
    git config alias.diffo '!f() { git fetch; git diff FETCH_HEAD HEAD;}; f'
    只要执行 git diffo 就自动拉取远程并执行比较
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5263 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 06:03 PVG 14:03 LAX 22:03 JFK 01:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86