Я предполагаю, что это где-то ошибка конфигурации, но я не могу понять, где. Обычные команды 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.
Есть какие-нибудь идеи о том, что я могу сделать, чтобы устранить эту проблему?
Выводом по умолчанию для git diff
является список изменений, которые не были зафиксированы/добавлены в индекс. Если изменений нет, то и выхода нет.
git diff [--options] [--] […]
Эта форма предназначена для просмотра изменений, которые вы сделали относительно индекса (промежуточная область для следующего коммита). Другими словами, различия заключаются в том, что вы могли указать git добавить в индекс дополнительные данные, но не сделали этого.
Дополнительную информацию см. в документации. В частности, прокрутите вниз до примеров и прочтите этот раздел:
$ git diff # (1)
$ git diff --cached # (2)
$ git diff HEAD # (3)
Вне рабочей области, когда вы догадался, git не будет знать, что сравнивать, поэтому вам нужно явно указать два пути для сравнения, отсюда и сообщение об использовании.
Если вы используете его вне реального репозитория или рабочей копии, его поведение идентично GNU diff. Поэтому вам нужно сообщить 2 каталога или файла для сравнения. Пример:
git diff старый_каталог новый_каталог
.
Если между ними есть какая-либо разница, вывод покажет вам, как и ожидалось.
Ничего не происходит, если ваш рабочий каталог чист и нет никаких отличий от последнего обновления. Попробуйте отредактировать файл, а затем снова запустите git diff, после чего он должен отобразить разницу.