2013-01-17 14 views
13

git commit erlaubt, von einem bestimmten entfernten und Referenz zu holen, beispielsweiseGit fetch eine bestimmte, durch hash

git fetch <remote-url> <reference> 

so dass diejenigen gegebenen Festschreibungen verfügbar sind, ohne Fernbedienungen oder Erstellen von Zweigen zu müssen.

Dies funktioniert jedoch nur für Referenzen, wie Branchennamen oder Tags, aber nicht für bestimmte Hashes und somit Commits, die nirgends direkt referenziert werden.

Gibt es eine Möglichkeit, eine bestimmte Commit von einer Fernbedienung zu holen?

Antwort

8

Nein. Nach dem Handbuch, git fetch möchte eine refspec, die einfachste Form von denen ist eine ref, und eine blanke SHA-1 ist kein ref. Das heißt, das Commit muss einen Namen (Zweig, Tag) auf der Fernbedienung haben, damit Sie fetch es können.

4

Siehe "Pull a specific commit from a remote git repository":
Mit Git 2.5 (Juli 2015), werden Sie in der Lage zu tun:

git fetch --depth=1 <a/remote/repo.git> $SHA1 
git cat-file commit $SHA1 

Wenn die SHA1 "erreichbar" von einem des Zweigspitzen der Remote-Repo ist Dann kannst du es holen.

Caveat: benötigen Sie einen 2,5 Git obwohl Remote-Repo Server, der die uploadpack.allowReachableSHA1InWant Config behandelt (und Sie müssen die Config, um true, eingestellt werden eine einzige zu ermöglichen verpflichten holen).

Verwandte Themen