这个问题的使用场景
比如你在本地修改了代码,提交了20多次。现在你要将这些代码push上去了,你想再检查一下代码,但是你需要统计一下,这20次commit一共修改了哪些文件?每个文件分别修改了哪些地方?
在这个时候,你就需要用到这个指令了,能轻松查看,所有修改的文件列表和差异。
求大神解答
最好告知两种形式:
列出所有修改文件列表,但是不显示差异。
列出所有修改文件列表,并且显示出所有的修改差异。
比如你在本地修改了代码,提交了20多次。现在你要将这些代码push上去了,你想再检查一下代码,但是你需要统计一下,这20次commit一共修改了哪些文件?每个文件分别修改了哪些地方?
在这个时候,你就需要用到这个指令了,能轻松查看,所有修改的文件列表和差异。
列出所有修改文件列表,但是不显示差异。
列出所有修改文件列表,并且显示出所有的修改差异。
git log
可以指定时间范围、起止 commit、文件路径、分支/标签等等条件,并且可以对输出结果进行筛选,轻松满足你的第一个要求。
git show
或者 git diff
都能满足你的第二要求,使用的参数会有差异。
具体的命令我就是任性不说,自己看文档吧。
不过我可以奉送一个 trick,如果你认为 commit 的跨度是问题,你完全可以新建一个临时分支,然后往前进行 interactive rebase (squash all commit)一直到你要比较的初始 commit,这样一来你需要比较的 commit 就只有两个了,一个是起点,一个是包含了后续 n 的 commits 的总和。
2 回答1.4k 阅读✓ 已解决
1 回答719 阅读✓ 已解决
2 回答904 阅读✓ 已解决
1 回答880 阅读
1 回答687 阅读
506 阅读
这是我目前找到最合适的答案: