wake-up-neo.com

So erhalten Sie ein bestimmtes Commit aus dem GitHub-Projekt

Ich muss die Facebook-API von GitHub herunterladen. Normalerweise klicke ich einfach auf die Registerkarte "Downloads", um den neuesten Quellcode herunterzuladen. In diesem Fall benötige ich ein älteres Commit: 91f256424531030a454548693c3a6ca49ca3f35a , aber ich habe keine Ahnung, wie ich das gesamte Projekt aus diesem Commit holen kann. .

Kann mir bitte jemand sagen, wie das geht?

(Übrigens, ich bin auf einem Mac. Ich weiß nicht, ob das einen Unterschied macht).

115
w00

Zuerst klonen Sie das Repository mit git, z. mit:

git clone git://github.com/facebook/facebook-ios-sdk.git

Dadurch wird der gesamte Verlauf des Repositorys heruntergeladen, sodass Sie zu jeder Version wechseln können. Als nächstes wechseln Sie in das neu geklonte Repository:

cd facebook-ios-sdk

... und mit git checkout <COMMIT> zum richtigen Commit wechseln:

git checkout 91f25642453

Sie erhalten eine Warnung, da Sie sich nicht mehr in einem Zweig befinden und direkt zu einer bestimmten Version gewechselt sind. (Dies wird als "getrennter HEAD" -Zustand bezeichnet.) Da es sich anhört, als würden Sie dieses SDK nur verwenden, anstatt es aktiv zu entwickeln, müssen Sie sich keine Sorgen machen, es sei denn, Sie möchten es herausfinden mehr darüber, wie git funktioniert.

172
Mark Longair

Ich weiß nicht, ob es dort war, als Sie diese Frage gepostet hatten. Der beste und einfachste Weg, ein Commit herunterzuladen, ist das Klicken auf die Registerkarte Commits, wenn Sie ein Repository anzeigen. Anstatt auf den Commit-Namen zu klicken, klicken Sie auf Durchsuchen Sie das Repository an dieser Stelle im Verlauf} die Schaltfläche _ mit dem Symbol <> auf der rechten Seite des Commit-Namens/der Nachricht und schließlich auf das Symbol Download Zip-Schaltfläche, wenn Sie auf die Schaltfläche Klonen oder Herunterladen klicken.

Ich hoffe es hilft euch Jungs.

112
Sivan

Sivans Antwort in gif  enter image description here

1.Klicken Sie auf Commits in Github

2.Wählen Sie Browse code auf der rechten Seite jedes Commits 

3.Klicken Sie auf Download Zip, um den Quellcode zum Zeitpunkt des Commits herunterzuladen 

20
Suraj K Thomas

Die einfachste Möglichkeit, einen verlorenen Commit (der nur auf github und nicht lokal vorhanden ist) wiederherzustellen, ist das Erstellen eines neuen Zweigs, der diesen Commit enthält.

  1. Halten Sie das Commit offen (URL wie: github.com/org/repo/commit/long-commit-sha)
  2. Klicken Sie oben rechts auf "Dateien durchsuchen"
  3. Klicken Sie oben links auf das Dropdown-Menü "Tree: short-sha ..."
  4. Geben Sie einen neuen Zweignamen ein
  5. git pull der neue Zweig bis lokal
7
Jeff

Laden Sie einfach ein Commit mit der 7-stelligen SHA1-Kurzform herunter:

Arbeitsbeispiel:

https://github.com/python/cpython/archive/31af650.Zip  

Beschreibung:  

 `https://github.com/username/projectname/archive/commitshakey.Zip`

Wenn Sie den langen Hash-Schlüssel 31af650ee25f65794b75d4dfefed6fe4758781c1 haben, holen Sie sich einfach die ersten 7 Zeichen 31af650. Dies ist die Standardeinstellung für GitHub.

4
user1767754

Als Zusatz zu der akzeptierten Antwort:

Um die Hashes anzuzeigen, müssen Sie den vorgeschlagenen Befehl "git checkout hash " verwenden. Sie können git log verwenden. Je nachdem, was Sie brauchen, gibt es jedoch einen einfacheren Weg als das Kopieren/Einfügen von Hashes.

Sie können git log --oneline verwenden, um viele Commit-Nachrichten in einem stärker komprimierten Format zu lesen. 

Nehmen wir an, Sie sehen hier eine einzeilige Liste der Commits mit minimalen Informationen und nur teilweise sichtbaren Hashes:

hash111 (HEAD -> master, Origin/master, Origin/HEAD)
hash222 last commit
hash333 I want this one
hash444 did something
....

Wenn Sie last commit möchten, können Sie git checkout master^ verwenden. Der ^ gibt Ihnen das Commit before the master. Also hash222.

Wenn Sie das n-te letzte Commit ausführen möchten, können Sie git checkout master~n verwenden. Wenn Sie beispielsweise git checkout master~2 verwenden, erhalten Sie den Commit hash333.

0
Smogen

Der Fragentitel ist nicht eindeutig.

0
Id2ndR