2013-04-05 11 views
7

Mam strukturę katalogów takiego:Git rzadki kasa dla prostego wdrożenia internetowej

../dir1/dev/project1/... 
      /project2/... 
      /project3/... 
     /production/ 

Mam dev (i wszystkie jego katalogi sub) sprawdzone w git (i github). Wszystko działa dobrze.

Chciałbym użyć GitHub wdrożyć tylko project2 poprzez sprawdzanie (lub ciągnięcie, lub cokolwiek) w moim katalogu produkcyjnym. (A konkretnie, chcę sprawdzić przez tag). Więc to spowodowałoby ../dir1/production/project2

Nie jestem ekspertem git ale przeczytałem kilka online i wydaje się, że „rzadki kasa” jest to, co ja po. Próbowałem różnych kombinacji instrukcji here i here i here.

zasadzie zrobiłem:

mkdir <repo> && cd <repo> 
git init 
git remote add –f <name> <url> 
git config core.sparsecheckout true 
echo /project2/ >> .git/info/sparse-checkout 

Kiedy zrobić git pull <remote> TAGNAME uzyskać fatal: The remote end hung up unexpectedly.

Kiedy zrobić git checkout TAGNAME uzyskać error: Sparse checkout leaves no entry on working directory.

Co robię źle?

Odpowiedz

9

Aha - rozwiązany. Problem polegał na tym, że robiąc init, tworzyłem puste repozytorium, więc nie mogłem zrobić kasy. (Nie wiem dlaczego przyciąganie nie działa.)

Zamiast robić klona, ​​ale użyć parametru -n „no kasie”. To klonuje repozytorium git, ale pozostawia puste drzewo robocze. Następnie skonfiguruj skromne zamówienie. Następnie sprawdź dokładnie, co chcesz.

Aby odrobina:

cd <parentdir> 
git clone -n <url> 
cd <repo_dir> 
git remote add –f <name> <url> 
git config core.sparsecheckout true 
echo /<foldername>/ >> .git/info/sparse-checkout 
git checkout <tagname> 
Powiązane problemy