Одним из вариантов здесь может быть перебазирование вашей работы поверх текущей HEAD репозитория, из которого вы разветвились.
Что делает git rebase
, так это обратная ветвь вашей ветки к общему предку, затем быстрая- переадресация всех новых коммитов на ветку, против которой вы перебазируете, и, наконец, пытается применить каждый из ваших коммитов по очереди, пока у вас не появится линейная история, включающая все из другой ветки, а затем всю вашу собственную работу.
Предупреждение: никогда не перебазируйте ветки, в которых вы поделились своим состоянием с кем-то еще или другой веткой, и вы заботитесь о сохранении этих отношений: это по существу переписывает историю и создает совершенно новые коммиты, не связанные с вашими существующимииз них.Дополнительную информацию о перебазировании можно найти здесь : я рекомендую прочитать эту страницу перед тем, как продолжить.
Учитывая это предостережение, вы сделаете следующее:
git remote add source git://host.that.has.source/repo
git fetch source
git rebase source/master
Я сделал несколько предположений здесь.
что у вас есть доступ к исходному хранилищу: вам нужно импортировать все коммиты, так как вы сделали свою оригинальную ветку, чтобы это работало.
То, что вы хотите идти в ногу с главной ветвью этого репозитория: если вы хотите использовать другую ветку, замените слово «master» именем удаленной ветки, с которой вы хотите перебазировать (git branch -r
, чтобы увидеть их все).
Примечание. Когда вы запускаете команду rebase, вы можете столкнуться с ситуациями, когда вам нужно разрешать конфликты: делайте это обычным способом.
В случае коммита, который вы упомянули в комментариях, который был ранее выбран или объединен и вызывает конфликты, можно с уверенностью предположить, что вышестоящая копия этого кода превосходит вашу версию: когда git пытаетсячтобы применить этот коммит и встретить ошибки, вы можете просто git reset --hard HEAD
и затем git rebase --continue
использовать их версию.