Wie kann ich vom n-3-Commit verzweigen, wenn ich n Commits habe?
Ich kann den Hash jedes Commits sehen.
git
branch
git-branch
Dole Doug
quelle
quelle
git push origin BRANCH_NAME
<sha1-of-commit>
run zu starten ,git checkout -b <name-of-branch> <sha1-of-commit>
aber wenn der Zweig bereits existiertgit checkout -B <name-of-branch> <sha1-of-commit>
Um dies auf github.com zu tun:
quelle
Die Magie kann durch Git-Reset erfolgen .
Erstellen Sie einen neuen Zweig und wechseln Sie zu diesem (damit alle Ihre neuesten Commits hier gespeichert werden).
git checkout -b your_new_branch
Wechseln Sie zurück zu Ihrem vorherigen Arbeitszweig (nehmen Sie an, dass es sich um einen Master handelt).
git checkout master
Entfernen Sie die neuesten x-Commits und halten Sie den Master sauber
git reset --hard HEAD~x # in your case, x = 3
Ab diesem Moment befinden sich alle neuesten x-Commits nur noch in der neuen Verzweigung, nicht mehr in Ihrer vorherigen Arbeitsniederlassung (Master).
quelle
git reset --hard
keine gute Idee ist, wenn Sie das Commit bereits auf Ursprung gebracht haben ...git push --force
wenn Sie die Niederlassung bereits zuvor geschoben hattenWenn Sie sich nicht sicher sind, von welchem Commit Sie im Voraus verzweigen möchten, können Sie Commits auschecken und ihren Code (siehe Quelle, Kompilieren, Testen) von überprüfen
Sobald Sie das Commit gefunden haben, von dem Sie verzweigen möchten, können Sie dies innerhalb des Commits tun (dh ohne zuerst zum Master zurückzukehren), indem Sie einfach eine Verzweigung auf die übliche Weise erstellen:
quelle
quelle
git branch branchname <sha1-of-commit>
" (von der akzeptierten Antwort)?git checkout -b
, um einen neuen Zweig zu erstellen.Ein schneller Weg, dies auf Ihrem Github-Repo zu tun, wäre wie folgt:
quelle
Einfach ausführen:
Beispielsweise :
Der
checkout
Befehl mit dem Parameter-b
erstellt einen neuen Zweig UND schaltet Sie darauf umquelle
git fetch
&git branch
command im Ordner Ihres Projekts über das Terminal aus und überprüfen Sie, ob der Feature-Zweig vorhanden ist. Wenn dies der Fall ist, können Sie natürlich keinen Zweig aus gelöschten Zweigen erstellen. Sie können auch einen Zweig löschen, falls der Zweig ist wegEine gute verwandte Frage ist: Wie zum Teufel finden Sie das mit der
--help
Option Git heraus? Lass uns das versuchen:Wir sehen diese Ausgabe:
Gobbledegook.
Durchsuchen Sie den nachfolgenden Text nach dem Wort "Festschreiben". Wir finden das:
Wir kommen irgendwohin!
Konzentrieren Sie sich nun auf diese Zeile des Gobbledegooks:
Verdichten Sie das dazu:
Und fertig.
quelle
So tun Sie dies in Eclipse:
Es wird eine lokale Niederlassung für Sie erstellt. Wenn Sie dann Ihre Änderungen übertragen, wird Ihr Zweig auf den Remote-Server übertragen.
quelle
Sie können es in Stash tun.
quelle
Ich konnte es so machen:
Hier müssen Sie den Sprungwert eingeben. 0 ist die letzte, 1 ist die vorherige, 2 ist das Commit davor usw.
quelle
HEAD~1
(wobei 1 1 Commit Back angibt)?Dadurch wird der Zweig mit einem Befehl erstellt:
Ich bevorzuge diesen Weg besser als die oben veröffentlichten, da er den Zweig sofort erstellt (erfordert danach keinen zusätzlichen Push-Befehl).
quelle
Verwenden von Sourcetree | Der einfachste Weg.
quelle
Das habe ich getan:
In diesem Fall
8a75b001096536b3216022484af3026aa9c7bb5b
gehörte ein altes Commit zurmaster
Filiale.quelle
Wechseln Sie zu einem bestimmten Commit eines Git-Repositorys
Wenn Sie an einem Git-Repository arbeiten, möchten Sie manchmal zu einem bestimmten Commit (Revision) zurückkehren, um zu einem bestimmten Zeitpunkt einen Snapshot Ihres Projekts zu erhalten. Um dies alles zu tun, benötigen Sie den SHA-1-Hash des Commits, den Sie leicht finden können, indem Sie das Protokoll mit dem folgenden Befehl überprüfen:
Dadurch erhalten Sie eine kompakte Liste aller Commits und die Kurzversion des SHA-1-Hash.
Nachdem Sie den Hash des Commits kennen, zu dem Sie wechseln möchten, können Sie einen der folgenden 2 Befehle verwenden:
oder
Auschecken
git checkout <commit> <paths>
Weist git an, den aktuellen Status von Pfaden durch ihren Status im angegebenen Commit zu ersetzen. Pfade können Dateien oder Verzeichnisse sein.
Wenn kein Zweig angegeben ist, übernimmt git das HEAD-Commit.
Wenn kein Pfad angegeben ist, bewegt sich git
HEAD
zum angegebenen Commit (wodurch das Commit geändert wird, an dem Sie sitzen und arbeiten).zurücksetzen
Wenn Sie sich in einem Zweig befinden (dies sollte normalerweise der Fall sein)
HEAD
und dieser Zweig zum Festschreiben verschoben wird.Wenn Sie sich in einem getrennten
HEAD
Zustand befinden, wird der Git-Reset nur verschobenHEAD
. Um einen Zweig zurückzusetzen, checken Sie ihn zuerst aus.Wenn Sie mehr über den Unterschied zwischen Git-Reset und Git-Checkout erfahren möchten, würde ich empfehlen, den offiziellen Git-Blog zu lesen .
quelle
git log --abbrev-commit --pretty=oneline
kann abgekürzt werdengit log --oneline
Für Git-GUI-Benutzer können Sie den gesamten Verlauf (falls erforderlich) visualisieren und dann mit der rechten Maustaste auf das Commit klicken, von dem Sie verzweigen möchten, und den Verzweigungsnamen eingeben.
quelle
So führen Sie die akzeptierte Antwort in Visual Studio 2015 und 2017 aus:
Klicken Sie auf Änderungen (roter Pfeil oben)
Klicken Sie auf Aktionen (roter Pfeil oben) und dann im DropDown-Menü auf Verlauf anzeigen
Und der neue Tab wird geöffnet:
Und Sie sollten mit der rechten Maustaste auf das vorherige Commit klicken, auf das Ihr Code zurückgesetzt werden soll:
Wählen Sie eine neue Filiale und voilá!
Unten, obwohl nicht Teil der OP-Frage, aber ich mache viel und dieser ist ein Trickschritt, zumindest für mich: Wenn Sie zu einem vorherigen Commit zurückkehren möchten, ohne einen neuen Zweig auszuchecken, wählen Sie NICHT Zurücksetzen (! ?); Sie sollten --mixed oder --hard neu definieren:
quelle
Wenn Sie den Quellbaum verwenden, ist das ziemlich einfach.
quelle
Wenn Sie nach einer befehlszeilenbasierten Lösung suchen, können Sie meine Antwort ignorieren. Ich werde Ihnen vorschlagen, GitKraken zu verwenden . Es ist ein außergewöhnlicher Git-UI-Client. Es zeigt den Git-Baum auf der Homepage. Sie können sie sich einfach ansehen und wissen, was mit dem Projekt los ist. Wählen Sie einfach ein bestimmtes Commit aus, klicken Sie mit der rechten Maustaste darauf und wählen Sie die Option "Hier einen Zweig erstellen". Sie erhalten ein Textfeld zur Eingabe des Filialnamens. Geben Sie den Filialnamen ein, wählen Sie 'OK' und Sie sind fertig. Es ist wirklich sehr einfach zu bedienen.
quelle