Я хотел бы знать, обновлено ли мое локальное репо (а если нет, в идеале, я хотел бы увидеть изменения).
Как я мог это проверить, не делая git fetch
или git pull
?
Попробуйте git fetch --dry-run
В руководстве ( git help fetch
) говорится:
--dry-run
Show what would be done, without making any changes.
git fetch --dry-run
ничего не появляется?--all
?git pull
примерно эквивалентен agit fetch && git merge
. Если вы в какой-то момент запускали выборку без использования--dry-run
, значит, вы уже получили данные локально.Результат:
источник
Первое использование
git remote update
, чтобы обновить ваши удаленные ссылки. Затем вы можете сделать одно из нескольких, например:git status -uno
сообщит вам, идет ли ветвь, которую вы отслеживаете, впереди, сзади или в другую сторону. Если ничего не сказано, значит, локальный и удаленный одинаковые. Результат образца:git show-branch *master
покажет вам коммиты во всех ветвях, имена которых заканчиваются на «master» (например, master и origin / master).Если вы используете
-v
с git remote update (git remote -v update
), вы можете видеть, какие ветки были обновлены, поэтому вам не нужны дополнительные команды.источник
git remote update ; git status -uno
решил это.git fetch --dry-run
не давал выхода даже в тех случаях, когда локальный был позади удаленного.вы можете использовать его,
git status -uno
чтобы проверить, обновлена ли ваша локальная ветка с исходной.источник
git remote update ; git status -uno
свое дело! Неgit fetch --dry-run
дал результата, когда я ожидал (иgit pull
потянул).Не совсем - но я не понимаю, насколько
git fetch
это повредит, поскольку это не изменит ни одну из ваших местных веток.источник
Другой альтернативой является просмотр состояния удаленной ветки, используя
git show-branch remote/branch
его для сравнения, вы можетеgit show-branch *branch
увидеть ветку на всех пультах дистанционного управления, а также в своем репозитории! ознакомьтесь с этим ответом для получения дополнительной информации https://stackoverflow.com/a/3278427/2711378источник
Вам нужно будет выполнить две команды:
источник
Ты должен бежать
git fetch
прежде чем сможете сравнить свой локальный репозиторий с файлами на удаленном сервере.Эта команда обновляет только ветки удаленного отслеживания и не влияет на ваше рабочее дерево, пока вы не позвоните
git merge
илиgit pull
.Чтобы увидеть разницу между вашей локальной веткой и веткой удаленного отслеживания после загрузки, вы можете использовать git diff или git cherry, как описано здесь.
источник
Если вы используете
вы получите ответ о том, актуален ли он. По сути, вам просто нужно добавить параметр «подробный» к приведенному ранее ответу.
источник
Это невозможно без использования
git fetch
илиgit pull
. Как узнать, является ли репозиторий «актуальным», не заходя в удаленный репозиторий, чтобы увидеть, что вообще означает «актуальный»?источник
git pull
, который ОП явно запрещает в своем вопросе.git status -uno
это работает, и можно также использоватьgit show-branch *master
для просмотра статуса всех основных веток! Вы все еще говорите, что это невозможно? Вы можете видеть статус любой ветки, если у вас есть доступ к пульту!git status
только сообщает вам статус ваших местных ссылок, он не говорит вам, обновлены ли ваши местные ссылки с удаленными ссылками. Опять же: просто логически невозможно узнать, в каком состоянии находится удаленное репо, без получения состояния удаленного репо. Период. Это всего лишь основные законы пространства-времени.попытался отформатировать мой ответ, но не смог. Пожалуйста, команда stackoverflow, почему опубликовать ответ так сложно.
тем не менее,
ответ:
git fetch origin
git status (вы увидите результат типа «Ваша ветка отстает от origin / master на 9 коммитов»)
для обновления до удаленных изменений: git pull
источник