Zweig von einem vorherigen commit mit Git
Wenn ich über n commits, wie kann ich den Zweig von n-3 zu Begehen?
Kann ich den hash jeder Begehen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich über n commits, wie kann ich den Zweig von n-3 zu Begehen?
Kann ich den hash jeder Begehen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Filiale über einen hash:
Oder durch die Verwendung einer symbolischen Referenz:
Zur Kasse der Filiale, wenn Sie es erstellen, verwenden Sie
git push origin BRANCH_NAME
<sha1-of-commit>
laufengit checkout -b <name-of-branch> <sha1-of-commit>
aber wenn der Zweig bereits existiertgit checkout -B <name-of-branch> <sha1-of-commit>
Dazu auf github.com:
Die Magie kann getan werden, indem git reset.
Einen neuen branch erzeugen und zu ihm wechseln (so alle Ihre neuesten commits werden hier gespeichert)
git checkout -b your_new_branch
Wechseln Sie wieder zu Ihrem vorherigen Zweig (nehme an, es ist master)
git checkout master
Entfernen Sie die aktuellste Version von x verpflichtet, halten Sie master clean
git reset --hard HEAD~x # in your case, x = 3
Von diesem moment an, alle aktuellen x verpflichtet sind, nur in der neuen Filiale, die nicht in Ihrer vorherigen Zweig (master) nicht mehr.
git reset --hard
ist nicht eine gute Idee, wenn Sie schon getrieben haben, die sich verpflichten Herkunft...git push --force
wenn Sie bereits schob den Zweig vorWenn Sie nicht sicher sind, die zu Begehen Sie wollen, verzweigen Sie im Voraus überprüfen können, verpflichtet sich und überprüfen Sie Ihren code (siehe Quelltext, kompilieren, testen) von
sobald Sie die zu Begehen Sie wollen, verzweigen Sie kann in das commit (d.h. ohne Umweg zurück auf den master zuerst) nur durch die Schaffung einer Niederlassung in der üblichen Weise:
git branch branchname <sha1-of-commit>
" (von der akzeptierten Antwort)?git checkout -b
erstellen einer neuen Niederlassung.Einen schnellen Weg, es zu tun auf Ihrem Github-repo wäre wie folgt:
Können Sie es tun in Stash.
Dazu in Eclipse:
Wird es schaffen, eine Niederlassung für Sie. Dann, wenn Sie schieben Sie Ihre änderungen, Ihre Filiale wird gedrückt, um den remote-server.
Eine große Frage: Wie zum Teufel tun Sie dies herausfinden mithilfe der
--help
option von git? Lassen Sie uns versuchen, diese:Sehen wir uns in dieser Ausgabe:
Gobbledegook.
Suche durch den nachfolgenden text für das Wort "Begehen". Wir finden:
Sind wir irgendwo immer!
Nun, den Fokus auf dieser Zeile ist der gobbledegook:
Verdichten, dass zu diesem:
Getan.
War ich in der Lage, es zu tun, etwa so:
Wo müssen Sie die skip-Wert. 0 ist die neueste und 1 der vorhergehenden 2 ist das Begehen, bis dass, usw.
HEAD~1
(wo 1 gibt 1 commit zurück)?Einfach ein :
Beispiel :
Den
checkout
Befehl mit dem parameter-b
wird, erstellen Sie einen neuen Zweig UND es Schalter, die Sie über ihn zuDies ist, was ich getan habe:
In diesem Fall
8a75b001096536b3216022484af3026aa9c7bb5b
war und alt Begehen, gehören zu denmaster
Zweig.Gehen, um eine bestimmte commit von einem git-repository
Manchmal, wenn die Arbeit an einem git-repository, das Sie wollen zurück zu gehen, um eine bestimmte commit (revision), damit eine Momentaufnahme Ihres Projekts zu einem bestimmten Zeitpunkt. Zu tun, Sie müssen es die SHA-1-hash des Commits, die Sie leicht finden können, überprüfen Sie das Protokoll mit dem Befehl:
wodurch Sie eine kompakte Liste aller änderungen und die kurze version des SHA-1-hash.
Nun, Sie wissen, der hash des Commits, zu der Sie wechseln möchten, können Sie eines der folgenden 2 Befehle:
oder
Kasse
git checkout <commit> <paths>
Erzählt git zu ersetzen, die den aktuellen Zustand der Pfade, die mit Ihrem Staat in der gegebenen verpflichten. Pfade zu Dateien oder Verzeichnissen.
Wenn kein Zweig gegeben ist, git übernimmt die HEAD commit.
Wenn kein Pfad angegeben ist, git bewegt
HEAD
zu dem angegebenen commit (dadurch ändern der commit, auf denen Sie sitzen und arbeiten).reset
Wenn Sie auf einem Zweig (sollte man normalerweise),
HEAD
und dieser Zweig verschoben werden, zu verpflichten.Wenn Sie in freistehenden
HEAD
Zustand, git reset-Vorgang bewegen sich nurHEAD
. Zurücksetzen eines Zweiges, der erste check it out.Wenn du mehr darüber wissen wollte ist der Unterschied zwischen git reset und git checkout würde ich empfehlen zu Lesen der offizielle git-blog.
git log --abbrev-commit --pretty=oneline
können abgekürzt werdengit log --oneline
Git-GUI-Benutzer können Sie visualisieren die ganze Geschichte (wenn nötig) und dann mit der rechten Maustaste auf die zu Begehen Sie wollen Zweig aus, und geben Sie den branch-Namen.
Zu tun, die akzeptierten Antworten in Visual Studio 2015 & 2017:
Klicken Sie auf Veränderungen (Roter Pfeil oben)
Klicken Sie in Aktionen (Roter Pfeil oben) und klicken Sie auf "Verlauf Anzeigen" auf das DropDown-Menü
Und neue Registerkarte wird geöffnet:
Und Sie mit der rechten klicken Sie auf das Vorherige Begehen, dass Sie wollen, dass Ihr code wiederherstellen:
Wählen Sie an der Kasse eine neue Filiale und voilá!
Unten, auch wenn Sie nicht Teil der OP-Frage, aber ich habe sowohl eine Menge, und dieses ist ein trick Schritt, zumindest für mich: wenn Sie wollen zurückkehren zu einem vorherigen commit, ohne checkout in einen Zweig, wählen Sie NICHT wiederherstellen(!?); sollten Sie neu definieren --gemischt oder --hard: