«git diff» ничего не делает

Я предполагаю, что это где-то ошибка конфигурации, но я не могу понять, где. Обычные команды git работают нормально, но "git diff" ничего не делает. Быть в безопасности, Я удалил внешние инструменты сравнения из моего файла .gitconfig. Он был установлен через MacPorts и является последней версией (1.7.2.2).

Я вижу, что когда я запускаю «git diff» из моей рабочей области, он просто выходит, ничего не делая.

$ git --version
git version 1.7.2.2
$ git diff
$ 

Если я делаю резервную копию одного В директории, находящейся вне корневого рабочего пространства, ввод «git diff» дает мне следующее:

$ git diff
usage: git diff [--no-index] <path> <path>

Это может быть ожидаемым поведением, поскольку я не нахожусь в репозитории git.

Есть какие-нибудь идеи о том, что я могу сделать, чтобы устранить эту проблему?

87
задан Eric Andres 29 May 2013 в 04:07
поделиться

3 ответа

Выводом по умолчанию для git diff является список изменений, которые не были зафиксированы/добавлены в индекс. Если изменений нет, то и выхода нет.

git diff [--options] [--] […]

Эта форма предназначена для просмотра изменений, которые вы сделали относительно индекса (промежуточная область для следующего коммита). Другими словами, различия заключаются в том, что вы могли указать git добавить в индекс дополнительные данные, но не сделали этого.

Дополнительную информацию см. в документации. В частности, прокрутите вниз до примеров и прочтите этот раздел:

$ git diff            # (1)
$ git diff --cached   # (2)
$ git diff HEAD       # (3)
  1. Различайте рабочую копию с помощью индекса
  2. Различайте индекс с помощью HEAD
  3. Различайте рабочую копию с помощью HEAD

Вне рабочей области, когда вы догадался, git не будет знать, что сравнивать, поэтому вам нужно явно указать два пути для сравнения, отсюда и сообщение об использовании.

102
ответ дан 24 November 2019 в 07:51
поделиться

Если вы используете его вне реального репозитория или рабочей копии, его поведение идентично GNU diff. Поэтому вам нужно сообщить 2 каталога или файла для сравнения. Пример:

git diff старый_каталог новый_каталог.

Если между ними есть какая-либо разница, вывод покажет вам, как и ожидалось.

1
ответ дан 24 November 2019 в 07:51
поделиться

Ничего не происходит, если ваш рабочий каталог чист и нет никаких отличий от последнего обновления. Попробуйте отредактировать файл, а затем снова запустите git diff, после чего он должен отобразить разницу.

2
ответ дан 24 November 2019 в 07:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: