Wie kann ich das Git-Repository mit einer bestimmten Revision klonen, so wie ich es normalerweise in Mercurial mache:
hg clone -r 3 /path/to/repository
Wie kann ich das Git-Repository mit einer bestimmten Revision klonen, so wie ich es normalerweise in Mercurial mache:
hg clone -r 3 /path/to/repository
UPDATE 2 Seit Git 2.5.0 die unten beschriebene Funktion kann auf dem Server mit der Konfigurationsvariable aktiviert werden uploadpack.allowReachableSHA1InWant
, hier die GitHub Funktionsanfrage und die GitHub Commit zur Aktivierung dieser Funktion . Beachten Sie, dass einige Git-Server diese Option standardmäßig aktivieren, z. B. Bitbucket Server aktiviert sie seit Version 5.5+ . Siehe dies Antwort auf Stackexchange für ein Beispiel, wie Sie die Konfigurationsoption aktivieren.
UPDATE 1 Für Git-Versionen 1.7 < v < 2.5
git clone und git reset verwenden, wie in Antwort von Vaibhav Bajpai
Wenn Sie nicht das gesamte Repository abrufen wollen, sollten Sie wahrscheinlich nicht clone
. Sie können immer einfach fetch verwenden, um den Zweig auszuwählen, den Sie holen wollen. Ich bin kein hg-Experte, also kenne ich die Details von -r
aber in Git kann man so etwas machen.
# make a new blank repository in the current directory
git init
# add a remote
git remote add origin url://to/source/repository
# fetch a commit (or branch or tag) of interest
# Note: the full history up to this commit will be retrieved unless
# you limit it with '--depth=...' or '--shallow-since=...'
git fetch origin <sha1-of-commit-of-interest>
# reset this repository's master branch to the commit of interest
git reset --hard FETCH_HEAD
Zum Klonen nur eine einzige spezifische Verpflichtung für einen bestimmten Zweig oder die Verwendung eines Tags:
git clone --depth=1 --branch NAME https://github.com/your/repo.git
Leider, NAME
kann nur ein Zweig- oder Tag-Name sein (nicht ein Commit SHA).
Weglassen der --depth
um die gesamte Historie herunterzuladen und dann diesen Zweig oder dieses Tag auszuchecken:
git clone --branch NAME https://github.com/your/repo.git
Dies funktioniert mit der aktuellen Version von git (ich habe es mit der Version 2.18.0
).
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.