Почему я отказываюсь объединять несвязанные истории с git? - PullRequest
0 голосов
/ 27 мая 2018

Обратите внимание, что мой вопрос не «что мне делать?», Потому что я уже прочитал другие вопросы о переполнении стека.Я знаю, что должен указать параметр --allow-unrelated-history.

У меня вопрос "почему".

Вот операции, которые я сделал с версией git 2.17.0.windows.1,Обратите внимание, что эта ошибка не возникает в git версии 2.7.4 в Linux:

Сначала я создаю пустой репозиторий в gitlab.Затем у меня есть 2 пользователя на 2 разных компьютерах:

Первый пользователь:

git clone <repository_url>
cd myproject
touch file1.cpp
git add file1.cpp
git commit -m "file 1 creation"
git push origin master

Второй пользователь:

git clone <repository_url>
cd myproject
touch file2.cpp
git add file2.cpp
git commit -m "file 2 creation"
git pull

В настоящее время у меня есть эта ошибкасообщение:

роковое: отказ от слияния несвязанных историй

Я не понимаю, ПОЧЕМУ у меня есть это сообщение об ошибке в версии git windows, а не в Linux ...

Спасибо

1 Ответ

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

Сначала я создаю пустой репозиторий

Вот в чем проблема.Пустой репозиторий не имеет коммитов, поэтому, когда каждый пользователь делает git commit после извлечения пустого репозитория, он создает единственную корневую фиксацию.Таким образом, когда один нажимает, а другой пытается извлечь (уже сделав другой корневой коммит локально), Git жалуется, потому что вышестоящие общие ресурсы no фиксируют локальную копию.Это две совершенно разные, не связанные истории.

Этого можно избежать, убедившись, что первоначальный коммит создан и передан до того, как кто-либо другой потянет (так что у всех одинаковый корневой коммит), или с помощью --allow-unrelated-histories для обходаошибка, как вы упомянули.Лично я считаю, что первый вариант лучше.


Что касается расхождений между двумя установками Git: как прокомментировал @Schwern, это поведение было добавлено в Git 2.9 .

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