搜索

首页  >  问答  >  正文

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

这个问题的使用场景

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

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

求大神解答

最好告知两种形式:

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

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

漂亮男人漂亮男人2792 天前861

全部回复(6)我来回复

  • 怪我咯

    怪我咯2017-05-02 09:25:16

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

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

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

    回复
    0
  • ringa_lee

    ringa_lee2017-05-02 09:25:16

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

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

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

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

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-02 09:25:16

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

    回复
    0
  • 迷茫

    迷茫2017-05-02 09:25:16

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

    回复
    0
  • 習慣沉默

    習慣沉默2017-05-02 09:25:16

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

    回复
    0
  • 为情所困

    为情所困2017-05-02 09:25:16

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

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

    回复
    0
  • 取消回复