2010-02-06 13 views
6

Mam wielki sukces z git push --mirror, aby wykonać kopie zapasowe na nagim repo. Ale po wyszukiwaniu na SO i gdzie indziej, nie mogę znaleźć sposobu na klonowanie rzeczy lokalnie z wszystkich gałęzi. Nie chcę używać git clone, ponieważ nie chcę, aby moje lokalne repozytorium miało informacje o nagim repo. Jeśli użyję git pull, spowoduje to tylko zmniejszenie gałęzi HEAD.Naprzeciwko `git push --mirror`? Jak mogę odzyskać moje ponowne?

odgadywanie:

git pull /data/Dropbox/backup/that_stuff.git * 

dostaje mnie nigdzie, oczywiście.

Jak mogę odzyskać całą transakcję repo ze wszystkimi oddziałami? Zdaję sobie sprawę, że mógłbym po prostu skopiować nagie repo do mojego katalogu .git, ale to wygląda na zły pomysł.

+0

Więc zgaduję, że "pakiet git" sprzed 2 tygodni nie jest już w twoim guście? (http://stackoverflow.com/questions/2129214/backup-a-local-git-repository/2129286#2129286) – VonC

+1

@VonC dzięki bardzo za to. Mimo, że dobrze odpowiedziałeś na to pytanie, okazuje się, że tworzenie kopii zapasowych w pakiecie DropBox ma niewielkie znaczenie. Dodaje zbyt dużo ruchu (do serwera) i nie ma żadnej przewagi. MIrror jest także o wiele szybszy. Teraz, gdybym mógł rozwiązać ten ostatni problem :) –

+0

Właśnie ukończyłem swoją odpowiedź z odpowiednim "*", którego szukałeś? – VonC

Odpowiedz

2

Spróbuj git fetch zamiast git pull

git pull Ponieważ jest tam sprowadzić oddział i połączyć je do lokalnego oddziału, to nie miałoby sensu dużo próbuje scalić wszystkie zdalnych oddziałów do lokalnych oddziałów.

$ git fetch a-repo_url 

Powyższe polecenie kopiuje wszystkie branże z pilota zdalnego refs/heads/ nazw i zapisuje je do lokalnego refs/remotes/remoteRpo/ nazw, chyba że opcja branch.<name>.fetch służy do określenia niż domyślny refspec..
Spróbuj:

$ git fetch a-repo-url +refs/heads/*:refs/heads/* 

może zmusić ściągam wszystkie głowy dla wszystkich branż.
Zobacz to SO question.


PO yar raporty:

git pull /data/Dropbox/backup/mjdj.git/ +refs/heads/*:refs/heads/* 

działa.

+0

Próbowałem tego. GIT odpowiada '* gałęzi HEAD -> FETCH_HEAD ' ... więc to właśnie dostaje. –

+0

Próbowałem, że ostatni z gwiazdkami ... fatal: Odmowa pobrania do bieżącego oddziału refs/heads/master repozytorium non-bare –

+0

@yar: Może potrzebuje zdalnej referencji (http://www.kernel.org/ pub/software/scm/git/docs/git-remote.html), ale oznaczałoby to "zrobienie lokalnego repozytorium informacji o nagim repo", co nie jest tym, czego potrzebujesz. – VonC

-1

Można to osiągnąć za pomocą git-copy.

git copy /data/Dropbox/backup/that_stuff.git that_stuff.git 
Powiązane problemy