2013-07-25 12 views
6

Czy można pobierać submoduły dla repozytorium z tylko katalogiem roboczym?Pobierz podmoduły git dla tarballu

Jeśli pobierze się archiwum z repozytorium GitHub, które jest odpowiednikiem płytkiego klonu bez folderu .git, czy możliwe jest "pobranie" podmodułów do katalogu roboczego?

Próbowałem git init && git submodule update --init, ale to ani nie inicjuje, ani nie aktualizuje submodułów. Plik .gitmodules znajduje się w bieżącym katalogu.

Aktualizacja: Niektóre więcej tła na pytanie: Chcielibyśmy wykorzystać archiwów za sprawdzanie repozytoriów w Travis CI, ale kilka osób korzysta z submodules git. "Nie używaj submodułów Git" nie byłaby zatem dobrą odpowiedzią, ale odpowiedź też nie musi być czymś do utrzymania. Potrzebuję tylko folderu, który ma wyewidencjonowany kod i z zainicjowanymi submodułami, nie ma potrzeby niczego, co pozwoli mi na późniejsze wprowadzanie kolejnych zmian.

+0

Dlaczego nie 'git aktualizacja modułem --init --recursive --force' pracować? Powinien załadować te submoduły (ale z ich pełną historią). Zauważ, że [git1.8.4 doda -depth dla płytkiego submodule clone] (http://stackoverflow.com/a/17692710/6309). – VonC

+0

@VonC Gdybym tylko wiedział. To polecenie nic dla mnie nie robi. Brak błędów, ale zwraca "natychmiast" bez żadnych danych wyjściowych. – henrikhodne

+0

Jaka jest zawartość twojego pliku '.gitmodules'? I jakiej wersji git używasz? – VonC

Odpowiedz

2

Łącząc podejścia wget/tar, z git init nie pomoże zainicjować submodules:

Wszystko jest untracked po git init.

Trzeba dodać i zobowiązać wszystko przed: wtedy "praca"

git submodule update --init --recursive --force 

To git submodule polecenia, ale tworzyć tylko pustych katalogów.
To dlatego, że plik tar nie zawierał special entries (160000) utworzonego przez git submodule add.

Trzeba ponownie zadeklarować tych submodules:

C:\prog\git\ReactiveCocoa-2.0-development>git submodule add --name xcconfigs https://github.com/jspahrsummers/xcconfigs.git external\xcconfigs 
Cloning into 'external\xcconfigs'... 
remote: Counting objects: 312, done. 
remote: Compressing objects: 100% (229/229), done. 
Receal 312 (delta 87), reused 306 (delta 82) 
Receiving objects: 100% (312/312), 64.51 KiB | 0 bytes/s, done. 
Resolving deltas: 100% (87/87), done. 
+0

To nadal nie działa dla mnie. Używam tych samych poleceń, co w powyższym komentarzu, z 'git add -A. && git commit -m "commit everything" 'zaraz po' git init'. – henrikhodne

+0

@henrikhodne Właśnie zredagowałem swoją odpowiedź. – VonC

+0

Dzięki, wygląda na to, że musimy przetworzyć plik '.gitmodules' i odczytać wszystko. Miałem nadzieję na coś nieco bardziej zautomatyzowanego, ale myślę, że zadziała. – henrikhodne

Powiązane problemy