Попытка вытащить файлы из моего репозитория Github: "отказ от объединения несвязанных историй"

Я изучаю git, и я следую сообществу сообщества Git.

Ранее (давным-давно) я создал публичный репозиторий на Github с некоторыми файлами. Теперь я настроил локальный репозиторий Git на моем текущем компьютере и зафиксировал некоторые файлы. Затем я добавил удаленный указатель на мою страницу Github:

[root@osboxes c]# git remote add learnc https://github.com/michaelklachko/Learning-C

Это казалось успешным:

[root@osboxes c]# git remote show learnc
* remote learnc
  Fetch URL: https://github.com/michaelklachko/Learning-C
  Push  URL: https://github.com/michaelklachko/Learning-C
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (local out of date)

Теперь я хочу загрузить файлы с моего репозитория Github на свой компьютер. Я сделал это:

[root@osboxes c]# git fetch learnc
[root@osboxes c]# git merge learnc/master
warning: refname 'learnc/master' is ambiguous.
Already up-to-date.

Однако я не вижу новых файлов в локальном каталоге. Как я могу их получить?

Я также пытался это сделать:

[root@osboxes c]# git pull learnc master
From https://github.com/michaelklachko/Learning-C
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories

Кстати, локально я на главной ветке (других ветвей нет):

[root@osboxes c]# git status
On branch master
nothing to commit, working directory clean
53
задан MichaelSB 08 июля '16 в 0:33
источник поделиться

4 ответов

Попробуйте --allow-unrelated-histories

Как и max630, или как объяснено здесь Git отказ от объединения несвязанных историй

111
ответ дан Nevermore 31 июля '16 в 5:09
источник поделиться
git checkout master
git merge origin/master --allow-unrelated-histories

Устранить конфликт, затем

git add -A .
git commit -m "Upload"
git push
35
ответ дан Do Nhu Vy 04 дек. '16 в 17:59
источник поделиться

В то время как я все для разблокирования проблем с работой людей, я не думаю, что "push -force" или "--allow_unrelated_histories" следует научить новых пользователей в качестве общих решений, поскольку они могут вызвать реальный хаос в репозитории, когда один использует их, не понимая, почему вещи не работают в первую очередь.

Если у вас есть такая ситуация, когда вы начали с локального репозитория, и хотите сделать удаленный доступ к GitHub для совместной работы с вами, вам стоит позаботиться.

Когда вы создаете новый онлайн-репозиторий, есть опция "Инициализировать этот репозиторий с помощью README". Если вы прочитали мелкий шрифт, в нем говорится: "Пропустите этот шаг, если вы импортируете существующий репозиторий".

Возможно, вы отметили это поле. Или аналогичным образом вы сделали добавление/фиксацию в Интернете до того, как вы попытаетесь выполнить начальный толчок. Что происходит, вы создаете уникальную историю фиксации в каждом месте, и их нельзя согласовать без специального разрешения, упомянутого в ответе Nevermore (потому что git не хочет, чтобы вы так поступали). Вы можете следовать приведенным здесь советам или просто просто не проверять этот параметр в следующий раз, когда хотите связать некоторые локальные файлы с новым удаленным; удерживая пульт дистанционного управления для этого первоначального нажатия.

Ссылка: мой первый опыт работы с git + хабом заключался в том, чтобы столкнуться с этой проблемой и сделать много обучения, чтобы понять, что произошло и почему.

10
ответ дан BigJMoney 26 мая '17 в 23:57
источник поделиться

Если на одном конце нет существенной истории (например, если это всего лишь одно коммит-чтение в конце github), мне часто легче вручную копировать readme в локальное репо и делать git push -f, чтобы сделать моя версия - новый корень.

Я считаю, что он немного менее сложный, не требует запоминания неясного флага и сохраняет историю немного чище.

6
ответ дан captncraig 05 мая '17 в 0:24
источник поделиться

Другие вопросы по меткам