Решите проблемы истории коммитов с помощью «git pull» - PullRequest
0 голосов
/ 10 марта 2020

У меня есть GitHub репо , к которому я неоднократно обращался из дома и школы. Несколько дней назад go я был вынужден сбросить свой домашний P C и повторно инициализировать локальное репо. Теперь, всякий раз, когда я пытаюсь вытащить в свою школу P C, я получаю следующую ошибку:

C:\Users\ccronk22\Documents\Python\Cubes>git pull github master
From https://github.com/AwesomeCronk/Cubes
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories

C:\Users\ccronk22\Documents\Python\Cubes>

Добавление тегов -f или --force между pull и GitHub ничего не меняет. Я использую git с Windows 10 CMD.

Как вытащить измененный на мою школу P C, затем pu sh обратно на пульт, затем вытащить / изменить / pu sh в моем доме P C во время остановки этого беспорядка?

Ответы [ 3 ]

1 голос
/ 10 марта 2020

Я бы решил, какой репо является вашим текущим, с историей, которую вы хотите, и посмотрю, есть ли у вас какие-либо незафиксированные изменения в одном из других.

Сначала сохраните копию папки незафиксированных изменений на p c, в которой они находятся в качестве резервной копии. Если есть.

Теперь, в зависимости от того, какой из них наиболее актуален, вы должны сделать следующее:

Самый простой : github - это соответствующий код и история:
Любые репозитории на штуки, которые не работают, просто удалите их и снова клонируйте их из github.

git clone <github>

Второй вариант : один из штук релевантен, а github НЕ актуален:
ВНИМАНИЕ : Это перезапишет ваш репозиторий github. Подумайте об этом дважды, если это действительно необходимо:

На p c с соответствующим кодом (при условии, что ваш github называется origin):

git push --force origin master

Затем, как в первом варианте удалите не работающую папку p c git и снова клонируйте.

Если у вас есть незафиксированные изменения - только в случае необходимости:
После того, как вы исправили хранилище на ПК, возьмите резервную копию из незафиксированных изменений и скопируйте их во вновь клонированное хранилище. Будьте осторожны, чтобы не перезаписать. git, .gitattributes или .gitignore. Лучше всего будет определить измененные файлы и только скопировать их. Затем вы можете зафиксировать изменения и сделать изменения, как обычно.

Справочная информация об ошибке и способах ее возникновения
Это может произойти, например, при удалении папки. git на домашней странице p c. Затем вы снова инициируете папку как репозиторий git и git pu sh --force для github. Тогда другой школьный репозиторий больше не связан с репозиторием github. Потому что для git это совершенно новое и не связанное. Вот почему вы получаете сообщение об ошибке «Несвязанная история».

1 голос
/ 10 марта 2020

Я не знаю точно, как вы попали в эту ситуацию, но сообщение об ошибке указывает, что ваше локальное репо Git содержит историю, которая не связана с удаленным репо, на который он указывает. То есть, скорее всего, ваши локальные и удаленные репо отличаются. Предполагая, что у вас нет проблемы с попыткой сохранить какую-либо локальную незафиксированную работу, простейшим решением может быть просто удалить папку проекта и снова клонировать:

# from C:\Users\ccronk22\Documents\Python\
rm -r Cubes\
git clone <URL for Cubes project>

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

0 голосов
/ 10 марта 2020

Вы должны клонировать репо вместо повторной инициализации.

Пожалуйста, используйте: git клон https://github.com/AwesomeCronk/Cubes.git

Это также клонирует вашу историю и несвязанное сообщение истории должно go прочь.

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