Почему вы не получаете git diff перед добавлением?
git не рассматривает файлы в файловой системе как автоматически включенные в систему контроля версий, вы должны явно добавлять вещи в репозиторий git (как вы делаете, добавляя текущий каталог с git add .
).
Нет вывода в git diff
, потому что git не видит изменений внутри вашего хранилища, только файлы за пределами хранилища, которое он считает "неотслеживаемым" и поэтому игнорирует при создании дифф.
Я обнаружил, что это одно из ключевых отличий от vcs, таких как svn (наряду с подготовкой и игнорированием каталогов).
Если вы хотите, чтобы неотслеживаемые файлы были включены, git add
их.
Если вы не хотите, чтобы они были в вашем репо, добавьте их в свой .gitignore
(см. git ignore --help
). Это хорошо для объектных файлов C или файлов python .pyc
.
Почему я не получаю git diff после добавления ? *
Так что это немного по-другому. Если вы сделаете git status
, вы увидите, что файл сейчас находится в промежуточной области. Это область для файлов, которые вы собираетесь зафиксировать.
Когда вы git add
добавляете новый файл в репозиторий git, он пропускает рабочую копию и попадает прямо в область подготовки. В некотором смысле это имеет смысл: git add
всегда перемещает файлы в промежуточную область, независимо от того, отслеживаются они или нет.
Чтобы увидеть разницу между последним заездом и местом проведения, сделайте git diff --cached
.
Чтобы увидеть различия между областью подготовки и вашей рабочей копией, выполните git diff
. Если в промежуточной области ничего нет, то это то же самое, что выполнить различие между последней регистрацией и вашей рабочей копией.