git init foo
cd foo
git remote add origin https://github.com/username/repo_name.git
Перед push вы можете запустить эти команды для инициализации нового локального репозитория.Затем вы могли бы использовать эти команды для выполнения этой работы:
# fetch and checkout the master from "origin" and then add the new file
git fetch origin master
git checkout -b master FETCH_HEAD
touch bar.txt
git add .
git commit
git push -u origin master
Но вы сначала зафиксировали файл и создали локальный master
, который не прошел push и pull.Чтобы решить эту проблему,
git pull origin -r master
git push -u origin master
Без -r
локальный master
и удаленный master
не могут быть объединены, потому что это действительно две несвязанные ветви.У них нет общего коммита.С -r
или --rebase
они объединяются в виде перебазирования в виде линейной истории.
И есть другой способ, не такой хороший, как описанный выше
git fetch origin master
git merge FETCH_HEAD --allow-unrelated-histories
git push -u origin master
ВторойРешение создает ужасную историю с двумя корневыми коммитами.