Git -merge с репозиторием в локальной файловой системе
В каком-то контексте: я только что обновил Ubuntu, который нарушил мою существующую установку gitosis (см. здесь: ошибка # 368895), и только что переустановили gitosis из пакетов. Теперь я хочу перенести всю свою конфигурацию и набор репозиториев из старой установки gitosis (которая все еще существует и может быть извлечена, но в противном случае нарушена).
Теперь у меня есть два каталога gitosis-admin локально, по одному для каждой установки гитоза. У одного есть полная история, другая - пустая. Я хочу пережить эту историю. Вот что происходит:
[email protected]:~/gitosis-admin-new$ git merge ../gitosis-admin-old/
fatal: '../gitosis-admin-old/' does not point to a commit
... где есть git репозитории в ~/gitosis-admin-old/
и ~/gitosis-admin-new/
Мне, вероятно, понадобится сделать это для других репозиториев, которые имеют гораздо более длинные и более важные истории, поэтому копирование и фиксация как одно из них не является вариантом.
Что я делаю неправильно? Я пытался указать на .git/HEAD, который, как я понимаю, является фиксацией, но это не работает. Может кто-нибудь объяснить, как это сделать? Спасибо!
Ответы
Ответ 1
Вам нужно использовать git pull
с репозиторием, а не git merge
(который для ветвей):
git pull ../gitosis-admin-old/
Вам может потребоваться выбрать ветку в удаленной области для объединения, например:
git pull ../gitosis-admin-old/ master
Если вам нужно сделать это слияние только один раз, то использование git remote add
, как в jamessan answer, является ненужной работой. С другой стороны, если вы пересматриваете пульт дистанционного управления (вытягивая более одного раза), это решение было бы лучше, чем использование git pull <location> <branch>
.
Ответ 2
Вам нужно создать пульт для этого репозитория, а затем извлечь и слить (или просто вытащить) оттуда.
git remote add admin-old file://$HOME/gitosis-admin-old
git pull admin-old