Я вижу две возможности, хотите ли вы сохранить свою удаленную историю (т. Е. Начальную фиксацию на GitHub):
Все команды предполагают, что вы в данный момент находитесь на локальном master
(git checkout master
) ветвь и все изменения фиксируются (т. е. рабочий каталог чист)
Перезаписать удаленную историю
Если вам не нужна история на GitHub (то есть одна первоначальная фиксация, содержащая LICENSE
и README
file), вы можете просто принудительно заставить pu sh в свой удаленный репозиторий
git remote add origin your_github_repository_url
git push origin +master:master
Это будет pu sh вашего локального главного коммита на удаленном и перезаписать любые коммиты, которые существуют удаленно (т.е. на GitHub). Это не повлияет на вашу местную историю.
Сохранить всю историю
Это немного сложнее, но все же довольно просто. Вам нужно извлечь обе (не связанные) строки истории в один репозиторий, а затем объединить / перебазировать (это изменит хеши коммитов одной из двух веток):
git remote add origin your_github_repository_url
git fetch
git rebase origin/master master
git push origin master:master
Это перебазирует ваш локальный мастер поверх удаленного (= GitHub) мастера. Все ваши локальные хеши фиксации будут изменены (но, поскольку это новый проект, это, вероятно, не большая проблема).
В качестве альтернативы, вы можете скопировать удаленные коммиты в вашу локальную ветку. Вы можете выбрать нужные коммиты для достижения этого:
git remote add origin your_github_repository_url
git fetch
git cherry-pick origin/master
git push origin +master:master
Это позволит выбрать (т.е. скопировать) последний коммит с удаленного (= GitHub) поверх локальной ветки master и затем принудительно-пу sh ваша локальная главная ветвь над удаленной главной ветвью.
ПРИМЕЧАНИЕ: если вы боитесь потерять свои локальные изменения / файлы / фиксации → сначала сделайте резервную копию вашего репозитория (просто скопируйте полный каталог со всеми подкаталогами)