首页 > 使用Git如何查看即将被push上去的代码差异

使用Git如何查看即将被push上去的代码差异

这个问题的使用场景

比如你在本地修改了代码,提交了20多次。现在你要将这些代码push上去了,你想再检查一下代码,但是你需要统计一下,这20次commit一共修改了哪些文件?每个文件分别修改了哪些地方?

在这个时候,你就需要用到这个指令了,能轻松查看,所有修改的文件列表和差异。

求大神解答

最好告知两种形式:

  1. 列出所有修改文件列表,但是不显示差异。

  2. 列出所有修改文件列表,并且显示出所有的修改差异。


文件差异还是用客户端吧....sourceTree


这是我目前找到最合适的答案:

git diff origin/分支名...HEAD
git diff origin/分支名...HEAD --name-status

莫名奇妙被踩了一下,也不知道是谁踩的,希望站出来,有本事提供更简单易用的答案,回答不上来就乱踩别人,这是什么心理?


其实我觉得下载一个Github的客户端吧,用起来很直观很方便的,最近更新了,新增项目的工作流的图,我用的是windows版的,Mac版不了解啦…


git diff commit1 commit2 --name-status
git diff commit1 commit2


git log 可以指定时间范围、起止 commit、文件路径、分支/标签等等条件,并且可以对输出结果进行筛选,轻松满足你的第一个要求。

git show 或者 git diff 都能满足你的第二要求,使用的参数会有差异。

具体的命令我就是任性不说,自己看文档吧。

不过我可以奉送一个 trick,如果你认为 commit 的跨度是问题,你完全可以新建一个临时分支,然后往前进行 interactive rebase (squash all commit)一直到你要比较的初始 commit,这样一来你需要比较的 commit 就只有两个了,一个是起点,一个是包含了后续 n 的 commits 的总和。


已commit内容比较见 @910JQK 的回答

未commit但已经add的内容可以用 git diff --cached

【热门文章】
【热门文章】