Как добавить дополнительный файл в локальный репозиторий в существующий удаленный репозиторий - PullRequest
0 голосов
/ 18 мая 2019

Итак, я уже добавил новый пульт и несколько дней назад отправил файл из локального репозитория в удаленный репозиторий. Теперь я хочу перенести другой файл из другого нового локального репозитория в удаленный репозиторий. Как мне это сделать?

После инициализации нового локального репозитория для нового файла файл был зафиксирован локально. Затем я добавил удаленный компьютер и попытался отправить файл из локального репозитория в удаленный репозиторий, но он был отклонен.

git remote add origin https://github.com/username/repo_name.git
git push -u origin master


error: failed to push some refs to 
'https://github.com/username/repo_name'
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 pull origin master

From https://github.com/username/repo_name
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories

1 Ответ

1 голос
/ 18 мая 2019
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

ВторойРешение создает ужасную историю с двумя корневыми коммитами.

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