). Это не вернет никакой разницы, так как файл находится в промежуточной области и не будет сравниваться с хранилищем.

я запускаю 'git status' в моем репо, это дает:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified: myfile

Однако, если я сделаю 'git diff myfile', это не покажет различий. Это потому, что я внес изменения и удалил их, чтобы они вернулись к оригиналу?

Должен ли я запустить 'git checkout myfile', чтобы очистить его?

Ответы на вопрос(2)

У меня есть предпочтение--staged псевдоним, в основном потому, что я считаю, что--staged на самом деле означает то, что я хочу сделать, то есть показать мне поэтапные различия.

git diff --staged

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

Мне также нравитсяgit diff HEAD потому что это более общее. Он объединяет две концепции, которые знают большинство людей, а именно:

git diff <commit> позволяет увидеть разницу между вашей текущей позицией и предыдущим коммитом.

HEAD (или жеhead потому что проведение сдвига раздражает) - это ссылка на верхушку вашей ветки. (Для тех из вас, кто считает нажатия клавиш,@ это псевдоним дляHEAD.)

В совокупности эти два общепринятых понятия приводят к:

git diff head
git diff @
Решение Вопроса

используя--cached вариант мерзавца

git diff --cached myfile

Чтобы удалить его, просто сделайте то, что предлагает git status в его выводе;)

Ты можешь проверитьИндекс Git Для получения дополнительной информации.

 Mina Ragaie10 янв. 2019 г., 03:15
точно, он означает, что вы можете запустить git diff yourFileName до того, как внесете свои изменения, запустив git add, чтобы все работало нормально, но если вы уже сделали свои изменения, вам нужно запустить git diff --cached
 Adrian Mann10 февр. 2015 г., 15:56
Это сработало для меня, но только после того, как я сначала запустил «git add». Благодарю.

Ваш ответ на вопрос