2012-03-06 3 views
59

Я поменял несколько файлов в репозитории git, но еще не сделал их.git - diff текущих изменений до совершения

Я могу получить список изменений, просто вызвав git status. Но как мне получить список строк или содержание, что я изменил, в дополнение к именам файлов?

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

Обычно я просто делаю meld ., но в этом случае я подключен к внешнему серверу через ssh.

ответ

83

git diff по умолчанию показывает разницу между вашим рабочей директорией и индекса (ступенчатой ​​областью для следующей фиксации).

Если вы уже добавили (поставил) изменения в области ступенчатого, git diff --staged делает работу. Промежуточная область - это данные, из которых следующая фиксация будет сформирована git commit.

П. С. Хорошее чтение (ИМО) для Git начинающих:

  • https://git-scm.com/book/en/v2 (большинство глав, это объясняет модель за Git и ответы большинства типичных вопросов)
  • , а затем сразу http://gitready.com/ (советы по использованию).
+0

Не устраивается только в отношении файлов, которые еще не добавлены? Думал, что вам нужно использовать кешированный флаг. – pbond

+3

@peterbond 'man git-diff' says' --staged является синонимом --cached' –

+0

Я вижу, спасибо.! – pbond

3

Что я использую для таких случаев:

git diff HEAD * 

Это покажет изменения с момента последней фиксации. Хотя как-то он работает быстрее с

git diff .