Git: невозможно разрешить различия между мастером и источником / мастером - PullRequest
2 голосов
/ 25 марта 2019

Я недавно изменил свой код для размещения на Github и развернул его на своем действующем сайте, используя:

git pull origin master

Где для источника установлено значение https://github.com/myname/myproject.

Все работает хорошо, за исключением состояния git, которое показывает:

# On branch master
# Your branch is ahead of 'origin/master' by 74 commits.
#   (use "git push" to publish your local commits)

Это не правильно - я не сделал никаких коммитов, которые требуют публикации.Если я попытаюсь просмотреть детали, используя git diff master origin/master, я увижу большое количество файлов в списке.Однако я не могу понять, откуда происходят эти изменения: взяв файл, который я хорошо знаю, и просмотрев его историю, я вижу, что версия, показанная git log, точно такая же, как должна выглядеть версия на Github.

Вещи, которые я пробовал, которые не работали:

git fetch origin master:master

Я ожидал, что это приведет удаленного мастера к моему локальному мастеру.Но это никак не повлияло на статус.

git reset --hard origin/master

Это фактически сломало мой сайт, проверив какую-то другую версию кода.Я не знаю какой.Мне пришлось срочно git pull origin master сделать восстановление, что (к счастью) вернуло систему в рабочее состояние, но оставило мой статус в этом нестабильном состоянии.

Может кто-нибудь помочь?

Кстати,Сейчас я прочитал, что использование git pull в качестве механизма развертывания считается опасным, но я не совсем понимаю, почему, и я не нашел явно более совершенного способа сделать это в контексте Github - я открыт для предложений!

(обновлено в ответ на комментарий: вот ответ на git remote show origin:)

* remote origin
  Fetch URL: https://github.com/myname/myproject
  Push  URL: https://github.com/myname/myproject
  HEAD branch: master
  Remote branches:
    fixes8p03 tracked
    fixes8p07 tracked
    master    tracked
    rfc2188   new (next fetch will store in remotes/origin)
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

1 Ответ

1 голос
/ 25 марта 2019

Ваша удаленная ветка origin/master не обновилась и отстала от локальной master ветки. Они не разошлись, но удаленная ветвь на 74 коммита от локальной. У вас есть два варианта:

Если новые изменения в локальной ветке сделаны специально, просто нажмите их на origin/master:

git push origin master

Если вы не хотите вносить изменения по какой-либо причине, вы можете сбросить ветку master в ее удаленное состояние. Это означает, что вы перезаписываете master с помощью origin/master. Внимание, вы потеряете все 74 изменения, совершенные вами до :

git reset --hard origin/master

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...