如何查看提交中的更改?
当我做git diff COMMIT
我看到了这个提交和HEAD(afaik)之间的变化,但是我希望看到这个提交所做的更改。
我还没有发现任何明显的差异/日志选项,将给我的输出。
要查看特定COMMIT
哈希的差异:
git diff COMMIT^ COMMIT
将向您显示该COMMIT
的祖先和COMMIT
之间的区别。 查看关于git diff的手册页,了解有关^
符号及其朋友的命令和gitrevisions的详细信息。
另外, git show COMMIT
会做类似的事情。 (提交的数据,包括其差异)请参阅git show手册页 。
正如在“ 使用它的父项的git提交差异的速记 ”中所提到的,你也可以使用git diff
:
git diff COMMIT^!
要么
git diff-tree -p COMMIT
用git show,你需要(为了专注于diff而已)做:
git show --color --pretty=format:%b $COMMIT
COMMIT
参数是一个commit-ish :
提交对象或可recursion解引用到提交对象的对象。 以下是所有提交:提交对象,指向提交对象的标记对象,指向指向提交对象的标记对象的标记对象等。
请参阅gitrevision“指定修订”来引用提交。
另请参阅“ Git中树是什么意思? ”。
你也可以试试这个简单的方法:
git show <COMMIT>
git show
显示最近提交中所做的更改。
相当于git show HEAD
。
git show HEAD~1
会让你回到1提交。
从git-diff(1)的手册页:
git diff [options] [<commit>] [--] [<path>…] git diff [options] --cached [<commit>] [--] [<path>…] git diff [options] <commit> <commit> [--] [<path>…] git diff [options] <blob> <blob> git diff [options] [--no-index] [--] <path> <path>
使用中间的第三个:
git diff [options] <parent-commit> <commit>
也可以从底部的“ 示例”部分的相同手册页中获取:
$ git diff HEAD^ HEAD <3>
比较上次提交和上次提交之前的版本。
不可否认的是,它有点混乱,因此会更不容易混淆
比较最近的提交和提交之前的提交。
这似乎是做这个工作; 我用它来展示合并带来了什么。
git whatchanged -m -n 1 -p <sha of merge commit>
另一种可能性
git log -p COMMIT -1
git difftool COMMIT^ <commit hash>
也可以,如果你已经configuration你的difftool。
在这里看到如何configurationdifftool或在这里的手册页
另外,您可以使用git diff-tree --no-commit-id --name-only -r <commit hash>
来查看哪些文件在给定提交哈希中被更改/提交
通过提交使用git show COMMIT
来查看作者和时间。 这将导致这样的事情:
commit 13414df70354678b1b9304ebe4b6d204810f867e Merge: a2a2894 3a1ba8f Author: You <you@you.com> Date: Fri Jul 24 17:46:42 2015 -0700 Merge remote-tracking branch 'origin/your-feature'
如果要查看哪些文件已被更改,请使用git diff --stat a2a2894 3a1ba8f
上面的Merge行中的值运行以下git diff --stat a2a2894 3a1ba8f
。
如果你想看到实际的差异,运行git --stat a2a2894 3a1ba8f
首先得到提交id使用,
git log
#全部列出
要么
git log -p -1
#最后一个提交ID
复制提交ID。
现在我们使用2种方法列出来自特定提交的更改,
方法1:
git diff commit_id^!
#commit id像这样1c6a6000asad012
方法2:
git show commit_id eg: git show 1c6a600a
你可以使用git diff HEAD HEAD^1
来查看父提交的差异。
如果你只想看到文件列表,添加选项--stat
到它。
我在Windows 10上运行git 2.6.1.windows.1版本,所以我需要对Nevik的答案进行一些修改(而不是插入符号):
git diff COMMIT~ COMMIT
其他select是引用插入符号:
git diff "COMMIT^" COMMIT
这个命令会得到你的git parent commit-hash
git log -n 2 <commit-hash>
在那之后, git diff-tool <commit-hash> <parent-commit-hash>
例如:
bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3 commit 7f65b9a9d3820525766fcba285b3c678e889fe3b Author: souparno <souparno.majumder@gmail.com> Date: Mon Jul 25 13:17:07 2016 +0530 css changed to maintain the aspect ratio of the channel logos and to fit them properly commit c3a61f17e14e2b80cf64b172a45f1b4826ee291f Author: souparno <souparno.majumder@gmail.com> Date: Mon Jul 25 11:28:09 2016 +0530 the ratio of the height to width of the channel images are maintained
在这之后
git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f