2012-12-06 8 views
19

Normalerweise verwende ich den Befehl unten in meinem project.git ein Archiv in den angegebenen Ziele zu erreichen:Git: Wie aus dem Remote-Repository direkt archivieren?

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

Ich frage mich, seine, wenn möglich, anstatt in ein Zielverzeichnis direkt von einem Remote-Repository archivieren?

habe ich versucht, so etwas wie dies, ohne Freude:

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

Irgendwelche Vorschläge? Dank

+0

Git 1.9/2.0 (Q1 2014) wesentlich effizienter mit flachen Klonen sein: http://stackoverflow.com/a/21217267/6309 und http://stackoverflow.com/a/21217326/6309 – VonC

Antwort

26

Von git help archive:

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

Aber, wenn Sie nur den Repo extrahieren würde, können Sie einen flachen Klon mit --depth Parameter von git clone machen:

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

Befehl wie am Ende sollte:

--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. 

So y ou etwas wie folgt aus:

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

Wie kann ich 'git clone --depth = 1' anstelle eines Masters ein bestimmtes Tag ziehen lassen? – robru

+7

@Robru: Das verdient eine eigenständige Frage, denke ich, aber lies über '- [no-] single-branch' in' git help clone' nach. So etwas wie 'git clone --depth = 1 --single-branch --branch TARGET_BRANCH REMOTE_URL', denke ich. Und danke - darüber habe ich noch nie nachgedacht :) – mgarciaisaia

Verwandte Themen