Ответ 1
Это означает, что ваша локальная информация о происхождении/хозяине отличается от вашей удаленной версии. git fetch
исправит это. git pull
работает в вашем случае, потому что он также выполняет git fetch
.
Я переключаюсь на мастер, и он говорит, что я опережаю 40 коммитов:
$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 40 commits.
Но когда я делаю попытку, он говорит, что я обновляюсь:
$ git pull origin master
From https://github.com/dmcouncil/dmWorkflow
* branch master -> FETCH_HEAD
Already up-to-date.
Однако я могу решить эту проблему (удалите 40 commits
msg) с помощью
Michaels-MacBook-Pro-2:dmWorkflow durrantm$ git push origin master
Everything up-to-date
и теперь сообщение "40 commits
" исчезло:
$ git status
# On branch mdd_play_settings_and_topics_reports
nothing to commit (working directory clean)
Почему мне приходится делать дополнительный толчок (ничего не похожего) на синхронизацию?
Есть ли лучший подход к этому?
Это означает, что ваша локальная информация о происхождении/хозяине отличается от вашей удаленной версии. git fetch
исправит это. git pull
работает в вашем случае, потому что он также выполняет git fetch
.
Просто добавив к ответу Джамунда Фергюсона...
Если у вас настроено несколько настроенных пультов, вы также можете сделать git remote update
, который будет извлекать информацию для всех пультов.
Как и в случае с git fetch, это только обновит информацию о состоянии пультов. Он не будет обновлять или объединять любой код, поэтому рекомендуется делать это часто, чтобы избежать странных отчетов о состоянии и неправильных различий.
Как правило, вы будете ссылаться на локальную информацию удаленной ветки, когда используете команду, которая использует косую черту вместо пробела после удаленного, например. git command origin/master
и git command origin master
Пример использования: git checkout origin/master
переключится на код в соответствии с вашей текущей локальной информацией, а git diff origin/master
будет отличать ваш текущий код от текущей локальной информации о удаленной ветке. Это означает, что вы можете легко создать ветвь или разбить свой код с устаревшей информацией/кодом пульта, если вы не будете регулярно получать, что может привести к громоздким проблемам.