Как подробно показать незафиксированные изменения в Git и некоторых различиях в Git

202

Как показать незафиксированные изменения в Git?

Я STFW'ed , и эти команды не работают:

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>...]'
TD_Yan
источник

Ответы:

370

Как показать незафиксированные изменения в Git

Команда, которую вы ищете, это git diff.

git diff - Показать изменения между коммитами, коммитом и рабочим деревом и т. Д.


Вот некоторые из представленных вариантов, которые вы можете использовать

git diff(без параметров)
Распечатайте различия между вашим рабочим каталогом и индексом.

git diff --cached:
Распечатать различия между индексом и HEAD (текущий коммит).

git diff HEAD:
Распечатайте различия между вашим рабочим каталогом и HEAD.

git diff --name-only
Показывать только имена измененных файлов.

git diff --name-status
Показывать только имена и статус измененных файлов.

git diff --color-words
Слово за словом diff вместо строки за строкой.

Вот пример вывода для git diff --color-words:

введите описание изображения здесь


введите описание изображения здесь

CodeWizard
источник
2
Когда в конце вы видите подсказку двоеточия, это означает, что git показал первую страницу - нажмите enter, чтобы пройти другие изменения (как вы можете с помощью cat file | more)
указатель NULL
42

Вы уже подготовили изменения (предположительно, запустив git add), поэтому для получения их различий необходимо выполнить:

git diff --cached

(На равнине git diffбудут отображаться только неустановленные изменения.)

Например: Пример использования git diff cached

Аасмунд Элдхусет
источник
0

Для меня единственное, что сработало,

git diff HEAD

включая подготовленные файлы, git diff --cachedпоказывает только подготовленные файлы.

Александар Павич
источник