Несколько лет назад я создал публичный репозиторий проекта SourceForge на Github. Тогда проект поддерживал только CVS, поэтому я использовал git cvs для периодической синхронизации моего репозитория с оригиналом.Как слить репозиторий git с изменениями из разных upstream
В течение долгого времени не было каких-либо обязательств в репозитории CVS, и теперь я узнал, что они также перешли на git (хотя и на Sourceforge, а не на Github).
Мой вопрос сейчас: Как объединить изменения в репозитории SF git в моем репозитории?
То, что я пытался до сих пор:
- Добавить новый удаленный репозиторий 'вверх', указывающий на SF мерзавца репо
git fetch upstream
git checkout master
git merge upstream/master
Последний шаг работает без ошибок, но git status
говорит мне, что мастер & изначальный/тормозные колодки отклонения. Выполнение git pull
теперь приводит к множеству конфликтов («CONFLICT (add/add)»).
Мне нравится этот подход, чтобы найти общую историю (вместо ручного осмотра, о котором я упоминал в своем ответе). +1 – VonC
Я следовал вашим указаниям, но, к сожалению, он не работал должным образом. Первая проблема заключается в том, что HEAD-фиксация моей ведущей ветки была сделана сама («обновленный gitignore»), поэтому я не могу найти ссылку на upstream/master. Однако HEAD-1 будет работать. Вторая проблема заключается в том, что 'git show -s ...' на ветке upstream/master обнаруживает хеш фиксации из неправильной ветви (это хеш от master вместо upstream/master). В-третьих, даже при установке текущей базы и новой базы вручную команда rebase не работает: «Ошибка: нет восходящего потока, настроенного для ветви« master ». Fatal: нужна одна ревизия« – 1100101
Nevermind. Это сработало! Я случайно удалил информацию о восходящем потоке на главном компьютере, что и послужило причиной сообщения об ошибке. – 1100101