Git: как проверить, обновлено ли локальное РЕПО?

Я хотел бы знать, обновлено ли мое локальное РЕПО (и если нет, в идеале, я хотел бы увидеть изменения).

Как я мог проверить это, не делая git fetch или git pull ?

9 ответов


попробовать git fetch --dry-run Руководство (git help fetch) говорит:

--dry-run
Show what would be done, without making any changes.

можно использовать git status -uno чтобы проверить, обновлена ли ваша локальная ветвь с исходной.


не совсем - но я не вижу, как git fetch было бы больно, поскольку это не изменит ни одну из ваших местных ветвей.


git remote show origin

результат:

HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (local out of date) <-------

Это невозможно. Как вы можете знать, является ли репозиторий "современным", не заходя в удаленный репозиторий, чтобы узнать, что означает "современный"?


вы должны работать git fetch прежде чем вы сможете сравнить свой локальный репозиторий с файлами на удаленном сервере.

эта команда обновляет только удаленные ветви отслеживания и не повлияет на ваше рабочее дерево, пока вы не позвоните git merge или git pull.

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


Другой альтернативой является просмотр состояния удаленной ветви с помощью git show-branch remote/branch использовать его в качестве сравнения можно посмотреть git show-branch *branch чтобы увидеть ветку во всех пультах, а также в вашем репозитории! проверьте этот ответ для более https://stackoverflow.com/a/3278427/2711378


вам нужно будет выполнить две команды:

  1. git fetch origin
  2. git статус

первым использованием git remote update, чтобы обновить ваши удаленные ссылки. Затем вы можете сделать одну из нескольких вещей, таких как:

  1. git status -uno сообщит вам, отслеживаете ли вы ветку впереди, позади или разошелся. Если он ничего не говорит, местный и удаленные такие же.
  2. git show-branch *master покажет вам коммиты во всех ветви, имена которых заканчиваются на "master" (например, master и origin/master).

Если вы используете-v с удаленным обновлением git (git remote-V update) вы можете видеть, какие ветви были обновлены, поэтому вам не нужны дополнительные команды.