834 Stimmen

Zu einer bestimmten Revision gehen

Ich habe ein Git-Repository für ein bestimmtes Projekt geklont. Kann ich die Dateien in den Ausgangszustand versetzen, und wenn ich die Dateien überprüfe, gehe ich zu Revision 2, 3, 4 ... die neueste? Ich würde gerne einen Überblick darüber haben, wie sich das Projekt entwickelt hat.

1250voto

Marcelo Cantos Punkte 173498

Vor der Ausführung diesen Befehl zu verwenden, denken Sie daran, dass er Sie in Status des abgetrennten Kopfes

Utilice git checkout <sha1> um eine bestimmte Übertragung zu überprüfen.

<sha1> ist die eindeutige Commit-Nummer, die Sie mit git log

Hier sind einige Optionen, nachdem Sie den Status eines abgetrennten Kopfes erreicht haben:

  • Kopieren Sie die Dateien oder nehmen Sie die Änderungen vor, die Sie benötigen, in einen Ordner außerhalb Ihres Git-Ordners und checken Sie den Zweig aus, in dem Sie sie benötigen git checkout <existingBranch> und Dateien ersetzen
  • Erstellen einer neuen Zweigstelle git checkout -b <new_branch_name> <sha1>

86voto

J4cK Punkte 29435

Um zu einer bestimmten Version/Commit zu gelangen, führen Sie folgende Befehle aus. HASH-CODE erhalten Sie von git log --oneline -n 10

git reset --hard HASH-CODE

Hinweis - Nach dem Zurücksetzen auf eine bestimmte Version/Commit können Sie Folgendes ausführen git pull --rebase wenn Sie alle verworfenen Übertragungen wiederherstellen wollen.

23voto

Mat Punkte 195740

Einen grafischen Überblick über den Projektverlauf erhalten Sie mit Tools wie gitk . Laufen Sie einfach:

gitk --all

Wenn Sie einen bestimmten Zweig auschecken möchten:

git checkout <branch name>

Für eine bestimmte Übertragung verwenden Sie den SHA1-Hash anstelle des Zweignamens. (Siehe Bäumchen im Git Community Book die eine gute Lektüre ist, um andere Optionen für die Navigation in Ihrem Baum zu sehen).

git log verfügt über eine ganze Reihe von Optionen zur Anzeige von detaillierten oder zusammenfassenden Verlaufsdaten.

Ich kenne keine einfache Möglichkeit, die weiter in einer Commit-Historie. Projekte mit einer linearen Historie sind wahrscheinlich nicht sehr häufig. Die Idee einer "Revision" wie bei SVN oder CVS lässt sich in Git nicht so gut abbilden.

6voto

Wizard Punkte 71

Mit dem SHA1-Schlüssel einer Übertragung können Sie Folgendes tun:

  • Suchen Sie zunächst den gewünschten Commit für eine bestimmte Datei:

    git log -n <# commits> <file-name>

    Dies, basierend auf Ihrer <# commits> wird eine Liste der Übertragungen für eine bestimmte Datei erstellt.

    TIPP: Wenn Sie nicht sicher sind, nach welchem Commit Sie suchen, können Sie dies mit dem folgenden Befehl herausfinden: git diff <commit-SHA1>..HEAD <file-name> . Dieser Befehl zeigt den Unterschied zwischen der aktuellen Version eines Commits und einer früheren Version eines Commits für eine bestimmte Datei an.

    HINWEIS: Der SHA1-Schlüssel einer Übertragung wird im Format git log -n Liste als:

übergeben. <SHA1 id>

  • Zweitens: Wählen Sie die gewünschte Version aus:

    Wenn Sie die gewünschte Übertragung/Version gefunden haben, verwenden Sie einfach den Befehl: git checkout <desired-SHA1> <file-name>

    Dadurch wird die von Ihnen angegebene Version der Datei im Staging-Bereich abgelegt. Um sie aus dem Staging-Bereich zu entfernen, verwenden Sie einfach den Befehl: reset HEAD <file-name>

Um zu dem Ort zurückzukehren, an dem das entfernte Repository angezeigt wird, verwenden Sie einfach den Befehl: git checkout HEAD <file-name>

4voto

ihojmanb Punkte 422

Um zu einem bestimmten festgelegten Code zu gelangen, Sie benötigen den Hash-Code dieser Übergabe. Sie können diesen Hash-Code auf zwei Arten erhalten:

  1. Holen Sie es von Ihrem Github/Gitlab/Bitbucket-Konto. ( commit_hash_code ), oder Sie können
  2. git log und überprüfen Sie Ihre letzten Übertragungen in diesem Zweig. Es zeigt Ihnen den Hash-Code Ihrer Übergabe und die Nachricht, die Sie während der Übergabe Ihres Codes hinterlassen haben. Kopieren Sie einfach und machen Sie dann git checkout commit_hash_code

Wenn Sie nach dem Wechsel zu diesem Code weiter daran arbeiten und Änderungen vornehmen wollen, sollten Sie einen weiteren Zweig mit git checkout -b <new-branch-name> Ansonsten werden die Änderungen nicht übernommen.

CodeJaeger.com

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.

Powered by:

X