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

of1yzvn4  于 2023-02-02  发布在  Git
关注(0)|答案(5)|浏览(126)

如何在Git中显示未提交的更改?
我已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>...]'
yqkkidmi

yqkkidmi1#

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

您要查找的命令是***git diff***

***git diff***-显示提交、提交和工作树之间的更改等

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

***git diff***(无参数)

打印出工作目录和索引之间的差异。

***git diff --cached***:

打印出index和HEAD(当前提交)之间的差异。

***git diff HEAD***:

打印出工作目录和HEAD之间的差异。

一米五米一x

仅显示更改文件的名称。

一米六米一x

仅显示已更改文件的名称和状态

一米七米一x

逐字而不是逐行进行比较。
以下是git diff --color-words的输出示例:

l3zydbqr

l3zydbqr2#

您已经暂存了更改(可能是通过运行git add),因此为了获取它们的diff,您需要运行:

git diff --cached

(普通git diff将仅显示未暂存的更改。)
例如:

g6ll5ycj

g6ll5ycj3#

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

git diff HEAD

包括暂存文件,git diff --cached仅显示暂存文件。

smdncfj3

smdncfj34#

我遇到了git status显示更改,但git diff什么也不打印的情况,尽管有几行有更改。

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

raspbian上的Git 2.20.1。其他命令如git checkoutgit pull打印到stdout没有问题。

mrfwxfqh

mrfwxfqh5#

这当然不是显示未提交文件的正确方法,但它是有效的:
git switch <current-branch>
输出:

相关问题