2010-01-19 14 views
16

Mam więc repozytorium git, które zostało wyciągnięte w jednym punkcie, a repozytorium znajduje się na serwerze. Nie mam dostępu do oryginalnego repozytorium, z którego je ściągnąłem. Jak mogę uzyskać kod z istniejącego serwera na inny komputer?Repozytorium Git z jednego komputera na drugie

EDIT 1: Więc oto jak to wygląda:

  • COMPUTER A: repozytorium git, że pierwotnie wyrejestrowany z. Nie mam już do tego dostępu.
  • KOMPUTER B: Udostępniony serwer, na którym mam sprawdzony kod.
  • KOMPUTER C: Lokalny laptop.

Czy mogę po prostu zrobić prostą kopię tego katalogu bez użycia git, czy mogę użyć git do klonowania, jeśli od B do C?

+0

Wow - po prostu patrząc na to pytanie - przezabawne! –

Odpowiedz

5

Można też wyciągnąć z lokalizacji sieciowej lub skopiować cały katalog (folder) zawierającą .git po drugiej stronie do innego komputera.

3

Można po prostu sklonować go z serwera, zakładając, że masz dostęp do miejsca, gdzie przechowywany jest klonem - moc dystrybucji;)

+0

Nie jestem pewien, czy mam dostęp do miejsca przechowywania klonu. Nie wiem, w jaki sposób wyciągnąłem oryginalny zestaw kodu. –

+0

Myślę, że Matt oznacza klonowanie go z Compuer B ("istniejący serwer") do komputera C ("inny komputer"). Komputer A jest tym, do którego nie masz dostępu. git clone entry in manual: http://www.kernel.org/pub/software/scm/git/docs/git-clone.html –

+0

Czy masz lokalnie swój klon na swoim komputerze? Możesz klonować z tego samego; repozytoria zawierają wszystkie te same informacje, modulo wszelkie zmiany od ostatniego wyciągnięcia. –

0

To znaczy, że chcesz klon to na innym komputerze?

Jak o:

git clone ssh://myserver/path/to/myproject.git 
-2

Jeśli dobrze rozumiem pytanie, po prostu chcesz przenieść historię kodu z B na C. Faktycznie, ponieważ git używa modelu de-centrycznego, B ma pełną historię kodu aż do ostatniego punktu synchronizacji między B i A .

mogę myśleć o trzech metod, jeśli po prostu chcesz przenieść historię kodu z B do C:

  • bezpośrednie kopiowanie/rsync/etc. wystarczy skopiować wszystkie pliki i struktur \ B-maszyna \ code.git do \ c
  • git clone: ​​jest to najlepszy wybór, jeśli mają dostęp do B C przez http lub ssh
  • wiązka git: git obsługuje polecenia wiązki, a po wiązka, kopiowanie/rsync/ftp/scp pliku do wiązki C
2

można uruchomić z komputera C:

git clone [email protected]_B:path/to/root/of/repository 

zakładając, że komputer został uruchomiony B serwera ssh. W przeciwnym razie są obsługiwane inne protokoły (file: //, http: //, \\ computer_B (NetBios), ...)

31

Uzyskuje się to poprzez utworzenie klonu repozytorium na komputerze COMPUTER B, uruchamiając polecenie git clone na komputerze COMPUTER C, w którym chcesz utworzyć sklonowane repozytorium. Klonowanie w git może odbywać się za pomocą wielu protokołów, w tym ssh, https, git; i te wymagają odpowiedniej konfiguracji, aby polecenie git clone powiodło się.

Najprostszym rozwiązaniem jest, aby uruchomić serwer git na komputerze B przy użyciu tego polecenia:

> git daemon 

uzyskać pomoc dotyczącą powyższego polecenia, uruchom git help daemon

Następnie umieść plik znacznika w folderze .git repozytorium na COMPUTER B, aby udzielić uprawnienia do serwera git, aby uruchomić polecenie klonowania w tym repozytorium. Odbywa się to poprzez:

> cd <repository root>/.git 
> touch git-daemon-export-ok 

Teraz z terminala na komputerze C, uruchom następujące polecenia:

> cd <folder in which to create the cloned repository> 
> git clone git://<ip address of COMPUTER B>/<full path of the repository on COMPUTER B> 

to stworzy sklonowanego repozytorium na komputerze C

+0

Daje błąd: odmowa dostępu lub repozytorium nie zostało wyeksportowane. –

+0

Mam "odmówił połączenia", w jaki sposób mogę skonfigurować git pemission w repozytoriach git? –

Powiązane problemy