2012-12-06 22 views
19

I zazwyczaj użyć polecenia poniżej wewnątrz mój project.git dostać archiwum w określonych miejscach:Git: Jak zarchiwizować bezpośrednio ze zdalnego repozytorium?

git archive master | tar -x -C /home/kave/site/ 

Zastanawiam się, czy jego można archiwizować bezpośrednio ze zdalnego repozytorium zamiast do katalogu docelowego?

Próbowałem coś takiego, bez radości:

git archive master https://[email protected]/myoproject.git | tar -x -C /home/kave/site/ 

jakieś sugestie? Dzięki

+0

Git 1.9/2.0 (Q1 2014) będzie znacznie bardziej efektywne z płytkiej klonowania: http://stackoverflow.com/a/21217267/6309 i http://stackoverflow.com/a/21217326/6309 – VonC

Odpowiedz

26

Od git help archive:

--remote=<repo> 
     Instead of making a tar archive from the local repository, retrieve a tar archive from a remote repository. 

komenda powinna skończyć jak:

$ git archive --remote=https://[email protected]/myoproject.git master 

Ale jeśli chcesz po prostu wydobyć repo, można dokonać płytkiej klon korzystając --depth parametr git clone:

--depth <depth> 
     Create a shallow clone with a history truncated to the specified number of revisions. A shallow repository has a number of limitations (you cannot clone or fetch from it, nor push from nor into it), but is adequate if you are only interested in the recent history of a large project with a long history, and would want to send in fixes as patches. 

Tak ou mieć coś takiego:

$ git clone --depth=1 https://[email protected]/myoproject.git 
+0

Jak mogę uczynić 'git clone --depth = 1' wyciągnąć konkretny tag zamiast master? – robru

+7

@Robru: To zasługuje na samodzielne pytanie, ale myślę o "- [no-] single-branch' w" git help clone ". Coś w rodzaju 'git clone --depth = 1 --single-branch --branch TARGET_BRANCH REMOTE_URL', myślę. I dziękuję - nigdy o tym nie myślałem :) – mgarciaisaia

Powiązane problemy