2009-10-30 11 views
13

W pewnym kontekście: Właśnie uaktualniłem Ubuntu, który zepsuł moją istniejącą instalację gitosis (patrz tutaj: bug #368895) i właśnie ponownie zainstalowałem gitosis z pakietów. Teraz chcę przenieść całą moją konfigurację i zestaw repozytoriów ze starej instalacji gitosis (która nadal istnieje i może zostać ściągnięta z, ale w przeciwnym razie jest zepsuta).git-merge z repozytorium na lokalny system plików

Mam teraz dwa katalogi gitosis-admin lokalnie, po jednym dla każdej instalacji gitosis. Jedna ma pełną historię, druga jest pusta. Chcę przebrnąć przez tę historię. Oto co się dzieje, choć:

[email protected]:~/gitosis-admin-new$ git merge ../gitosis-admin-old/ 
fatal: '../gitosis-admin-old/' does not point to a commit 

... tam, gdzie jest to repozytoria git w ~/gitosis-admin-old/ i ~/gitosis-admin-new/

Jestem prawdopodobnie będzie trzeba to zrobić dla innych repozytoriów też, co ma znacznie dłuższy i ważniejsze historie, więc kopiowanie i zatwierdzanie jako jedna nie jest opcją.

Co robię źle? Próbowałem wskazywać na .git/HEAD, który jak rozumiem, jest zatwierdzeniem, ale to nie działa. Czy ktoś mógłby wyjaśnić, jak to zrobić? Dzięki!

Odpowiedz

21

Trzeba użyć git pull z repozytorium, nie git merge (co jest dla oddziałów):

git pull ../gitosis-admin-old/ 

Być może trzeba wybrać oddział w pilocie, aby łączyć, np:

git pull ../gitosis-admin-old/ master 

Jeśli chcesz zrobić to tylko raz, to używanie git remote add jak w jamessan answer jest niepotrzebną pracą. Z drugiej strony, jeśli chcesz ponownie odwiedzić pilota (ciągnąc więcej niż jeden raz), to rozwiązanie byłoby lepsze niż użycie git pull <location> <branch>.

+0

Zaakceptowany; dostaje odpowiedź od jamessana z powodu "mistrza"! Dziękuję bardzo :) –

3

Musisz utworzyć pilota dla tego repozytorium, a następnie pobrać z niego scalenie (lub po prostu wyciągnąć).

git remote add admin-old file://$HOME/gitosis-admin-old 
git pull admin-old 
Powiązane problemy