"git diff" ничего не делает
Я предполагаю, что это ошибка конфигурации где-то, но я не могу понять, где. Обычные команды git, похоже, работают нормально, но "git diff" ничего не делает. Чтобы быть в безопасности, я удалил внешние инструменты diff из моего .файл gitconfig. Это было установлено через MacPorts и является версией lates (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.
любые идеи о том, что я могу сделать для устранения этого?
5 ответов:
вывод по умолчанию для
git diff
список изменений, которые не были зафиксированы / добавлен в индекс. Если нет изменений,то нет и вывода.git diff [--options] [ -- ] [...]
эта форма предназначена для просмотра изменений, внесенных относительно индекса (промежуточная область для следующей фиксации). Другими словами, различия в том, что вы может скажите git для дальнейшего добавления в индекс, но вы все еще еще нет.
посмотреть документация для более подробной информации. В частности, прокрутите вниз до примеров и прочитайте этот раздел:
$ git diff # (1) $ git diff --cached # (2) $ git diff HEAD # (3)
- Diff рабочая копия с индексом
- Diff индекс с головой
- Diff рабочая копия с головой
вне вашего рабочего пространства, как вы догадались, git не будет знать, что различать, поэтому вам нужно явно указать два пути для сравнения, следовательно, использование сообщение.
Примечание: начиная с Git или 1.8.5 1.9, 4 квартал 2013 года:
когда пользователь вводит "
git diff
"вне рабочего дерева, думая, что он находится внутри одного, текущее сообщение об ошибке, что это один-лайнер:usage: git diff --no-index <path> <path>
может быть недостаточно, чтобы заставить его осознать ошибку.
добавить "
Not a git repository
" к сообщению об ошибке, когда мы упали в "--no-index
режим" без явного параметр командной строки, чтобы поручить нам сделать это.
посмотреть:
- commit 286bc123cd (gitster, Junio C Hamano), который поясняет, что
git diff --no-index
может действовать как обычный (не-git)diff
.- commit b214eddfb2 (Dale R. Worley), который уточняет сообщение об ошибке:
уточните документацию для "
diff --no-index
".
Заявить, что когда не внутри репозиторий,--no-index
подразумевается и два аргумента обязательный.уточните сообщение об ошибке от
diff-no-index
сообщить пользователю, что CWD не находится внутри репозитория и поэтому два аргумента являются обязательными.To compare two paths outside a working tree: usage: git diff --no-index <path> <path>
Он ничего не делает, если ваш рабочий каталог чист и нет никаких отличий от последнего обновления. Попробуйте отредактировать файл, а затем снова запустите git diff, и он должен показать разницу.