如何详细显示Git中未提交的更改和一些Git差异

如何在Git中显示未提交的更改?

I “STFW”,并且这些命令不起作用:

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git status
On branch teyan/psservice
Your branch is up-to-date with 'origin/teyan/psservice'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)


modified:   psservice.c
modified:   psservice.vcxproj.filters




teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff


teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff master
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
439084 次浏览

你已经上演了这些变化(大概是通过运行git add),所以为了得到它们的差异,你需要运行:

git diff --cached

(普通git diff只会显示未分阶段的变化。)

例如< p >: Example git diff cached use

.

如何在Git中显示未提交的更改

你要找的命令是<强> < em > git diff < / em > < / >强

< em > git diff < / em > -显示提交、提交和工作树之间的变化


下面是它提供的一些您可以使用的选项

< em > git diff < / em >(无参数)
打印出你的工作目录和索引之间的差异 < p > < em > git diff --cached < / em >: < br > 打印出指数和HEAD(当前提交)之间的差异 < p > < em > git diff HEAD < / em >: < br > 打印出你的工作目录和HEAD之间的差异 < p > < em > git diff --name-only < / em > < br >

.

. < p > < em > git diff --name-status < / em > < br > 仅显示已更改文件的名称及状态。< / p > < p > < em > git diff --color-words < / em > < br >

.

.

下面是git diff --color-words的输出示例:

enter image description here


enter image description here

对我来说,唯一有效的方法就是

git diff HEAD

包括登台文件,git diff --cached只显示登台文件。

我有一个git status显示变化的情况,但git diff打印什么都没有,尽管有几行有变化。然而:

$ git diff data.txt > myfile
$ cat myfile
<prints diff>

Git 2.20.1在raspbian上。其他命令,如git checkoutgit pull打印到标准输出没有问题。