2013-05-03 4 views
0

Я довольно новичок в Git. Мой вопрос касается выполнения команды git diff HEAD до того, как она когда-либо совершится. Я знаю, что HEAD не существует, пока я что-то не совершил. Итак, как мне сделать, чтобы получить разницу между рабочим каталогом & начальным состоянием репо.Git diff HEAD перед тем, как совершать

Я знаю, что эта команда дает разницу между рабочей директорией & индексом (Стадия):

git diff 

И что следующая команда дает разницу между индексом & РЬИХ:

git diff --cached 
+0

Я не понимаю: это вновь созданный пустой репо? – giorgian

+0

Ровно! новое репо – h4k1m

+1

'git diff' пустого репозитория с (измененным) рабочим каталогом - это просто содержимое рабочего каталога ...' find. -тип f -print0 | xargs -0 cat' должен показать вам весь рабочий каталог ... – twalberg

ответ

3

Я думаю, вы могли бы сделать git commit --allow-empty, не добавляя ничего, если вы действительно хотите отличить первое «реальное» совершение, которое добавляет вещи.

+0

Я думаю, это единственное решение. Спасибо – h4k1m

0

Возможно, вы хотите git status? Если у вас есть вновь инициализированный репозиторий без коммитов, интерес пока не проявится.

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

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

1

Чтобы иметь ГОЛОВКУ для сравнения, вы можете создать пустую фиксацию на git commit --allow-empty сразу после git init.

+0

Сразу после 'git init' означает, что он доходит до' git add'. – h4k1m

1

Обычно моя первоначальная фиксация - это просто файл README. Это заставляет меня создавать README, и я также могу проверить, что мой нажим на пульты управления работает. Мой первый real фиксация фактического кода следует этому, и поэтому регулярный git diff в этом пункте работает так, как вы его намереваетесь.

Смежные вопросы