Конфликт Dropbox, вызывающий проблемы Github - PullRequest
0 голосов
/ 18 мая 2018

Тьфу.Так что Dropbox только что вызвал у меня пару проблем, потому что он не синхронизируется, когда это должно было произойти.Я не знаю, нужно ли merge или rebase или что-то еще.Мне нужен какой-то продвинутый gitfu.

Я единственный разработчик проекта, и конфликт возник из-за переключения между моим рабочим столом и ноутбуком.Никто другой не работает с этим репо ... Я мог буквально стереть удаленный репо и начать заново, и все было бы хорошо.(Я действительно не хочу терять историю, но было бы хорошо из кода POV.)

Запуск git push просто говорит:

To github.com:JCW/kicker-ticketing.git
! [rejected]        master -> master (non-fast-forward) 
error: failed to push some refs to 'git@github.com:JCW/kicker-ticketing.git' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Integrate the remote changes (e.g. 
hint: 'git pull ...') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

git status показывает:

On branch master Your branch and 'origin/master' have diverged, 
and have 6 and 3 different commits each, respectively.
   (use "git pull" to merge the remote branch into yours)

nothing to commit, working tree clean

Я удалил все конфликтующие файлы (включая файлы в .git/ и вручную добавил все изменения кода) - теперь мой локальный репозиторий должен быть удаленным origin/master.

Как лучше всего, в этой конкретной ситуации с одиночным разработчиком, просто подтолкнуть мое локальное репо к новому удаленному origin/master?

Я прочитал несколькоруководства по rebase vs merge , но все же очевидное решение ускользает от меня.

В следующий раз я позабочусь о том, чтобы Dropbox не разбился, прежде чем продолжать работу.Вздох.

1 Ответ

0 голосов
/ 18 мая 2018

Вы говорите:

Мой локальный репозиторий теперь должен быть удаленным источником / мастером

Если вы уверены в этом, сбросить удаленное состояние изв вашем местном штате просто наберите git push -f.Это деструктивно для удаленного конца, поэтому было бы хорошо, если вы сделаете резервную копию этого вначале.

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

...