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

1 天前
 lyvv
关于刚刚 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 里面查看
能否在可视化界面里面查看?
1187 次点击
所在节点    git
19 条回复
sibusana
1 天前
git history 插件可以的
hwdq0012
1 天前
有 ssh 吗,我用 vim+ git 帮你看
Trim21
1 天前
你图里根本就没有 dev 这个 branch 啊
lyvv
1 天前
@hwdq0012 加个 qq ,用 todesk 或者向日葵?
837666626

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

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

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

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

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

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

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

貌似没有方便的对比方式
JackCh3ng
1 天前
@JackCh3ng #16 命令行图形化对比可以看下这个 git 插件 https://github.com/dandavison/delta
JackCh3ng
1 天前
如果这个命令很常用可以配置别名
git config alias.diffo '!f() { git fetch; git diff FETCH_HEAD HEAD;}; f'
只要执行 git diffo 就自动拉取远程并执行比较

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1131531

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX