Подтвердить что ты не робот

Git: Почему разница git diff не отличается?

Если я запустил 'git status' на моем репо, он дает:

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

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

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

4b9b3361

Ответ 1

Ваш файл уже поставлен для фиксации. Вы можете показать его diff с помощью опции --cached git.

git diff --cached myfile

Чтобы отключить его, просто выполните то, что предлагает git в нем вывод;)

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

Ответ 2

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

git diff --staged

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

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

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

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

Комбинированные, эти две общепринятые концепции приводят к:

git diff head
git diff @

Ответ 3

Для сопоставления хранилища и сравнения хранилища

$git diff --staged

Для сравнения с рабочим сопоставлением хранилища используйте

$ git diff 

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