如何查看提交中的更改?

当我做git diff COMMIT我看到了这个提交和HEAD(afaik)之间的变化,但是我希望看到这个提交所做的更改。

我还没有发现任何明显的差异/日志选项,将给我的输出。

13 Solutions collect form web for “如何查看提交中的更改?”

要查看特定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 
  • 有没有办法使用.NET应用程序使用git?
  • 如何git重置 - 哈哈一个子目录?
  • git update-server-info做什么?
  • Git Bash卡在diff / log上,自发地重复同样的命令
  • Git显示日志中的所有分支(但不是寄存器)
  • 比较Bitbucket的优点和缺点Github
  • Git rebase(合并壁球)我的function分支到另一个分支
  • 如何仅用第一行输出git日志?