Означает ли отсутствие вывода из git diff, что различий нет?

#git #github

#мерзавец #github

Вопрос:

Ветка, над которой я работаю, называется dev, поэтому я сделал следующее, чтобы увидеть, есть ли какие-либо различия между тем, что у меня есть на моем компьютере, и тем, что есть в github:

 git fetch origin
git diff dev origin/dev
 

Я сделал это в командной строке в Windows, и после выполнения каждой команды курсор переходил к следующей строке без вывода. Означает ли это, что нет никаких различий?

Комментарии:

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

2. Нет, это не значит, что. Это означает, что между рабочим каталогом и промежуточной областью нет различий. Если вы внесли какие-либо изменения, вы можете увидеть эти различия с помощью git diff --cached

Ответ №1:

git diff как и при обычном diff вызове, выводит все различия, если таковые имеются, а затем завершает 0, если изменений не было, завершает 1, если были изменения, и завершает 2 или больше, если произошла ошибка.

Так что, как правило, да, это означало бы, что изменений нет. Есть несколько необычных случаев, когда это также может означать что-то еще, например ошибку, поэтому, если вы хотите быть уверенным, вам также следует проверить, что команда завершила 0. В оболочке POSIX вы можете увидеть статус завершения непосредственно предыдущей команды с echo $? помощью . Вероятно, есть способ сделать это в CMD или PowerShell, но поскольку я не являюсь пользователем Windows, это оставлено в качестве упражнения для читателя.