2017-05-13 3 views
0

Also ich bin ziemlich neu zu Git, aber ich habe Grundkenntnisse, wie es funktioniert und ich habe vor kurzem mit der Android-Quelle gespielt (insbesondere LineageOS, aber es tut nicht Es ist wirklich wichtig für meine Frage.Git status head nach git reset --hard

Grundsätzlich folgte ich den Anleitungen für Android und Lineage, um eine Build-Umgebung mit Linux (Xubuntu 16.04 LTS) einzurichten, die Quelle herunterzuladen, die proprietären Blobs meines Telefons zu erhalten und sie erfolgreich zu erstellen. Als nächstes fing ich an, einige Features auszuwählen.

Laut der Google-Dokumentation für AOSP sollte ich in einen Projektordner verschieben und einen "Repo start BRANCH_NAME" machen. um eine Zweigstelle zu erstellen, nehmen Sie dann meine Änderungen vor, fügen Sie sie hinzu und binden Sie sie. Die Sache ist, ich möchte diese Änderungen nirgends hinschieben. Ich möchte einfach nur lokal arbeiten und nur neue Änderungen vornehmen, während ich meine Cherry Picks behalte. Also habe ich ein paar Cherry Picks gemacht und einen Build erneut ausgeführt, was erfolgreich war, aber eines der Dinge, die ich ausgewählt habe, verursacht mir ein Problem und ich möchte es komplett rückgängig machen.

Ich habe zuerst Repo Sync und zog in einen Projektordner, als ich "git Branch", gab es "* (kein Zweig)" in grün, und wenn ich "git Status", sagte mir, dass ich bin momentan nicht auf einem Ast und das Arbeitsverzeichnis ist sauber.

Jetzt, da ich eine Zweigstelle in einem dieser Projekte erstellt und ein paar Commits ausgewählt habe, sagt git Status, dass ich 2 commit ahead bin, also habe ich "git reset --hard github/cm -14.1 "abgeschlossen und ich habe überprüft, dass die Dateien in ihren ursprünglichen Zustand zurückversetzt wurden. Ich habe "repo prune" ausgeführt, um den nun nicht mehr benötigten Zweig zu entfernen, und wenn ich "git branch" erneut starte, heißt es "* (HEAD detached at 12f0903)" in grün und wenn ich renne "git status" es auch sagt, dass HEAD bei 12f0903 in Rot losgelöst ist, sagt mir aber auch, dass es nichts zu begehen gibt und dass mein Arbeitsverzeichnis sauber ist.

Endlich, nach all dem, wenn ich jetzt nur einen neuen Zweig erstellen, geben Status und Zweig sauber zurück, normale Ausgabe ohne losgelöste Kopfmeldung. Gibt es eine Möglichkeit, in den Anfangszustand zurückzukehren, in dem man nicht in einem Zweig ist und keinen Kopf hat oder bin ich total verwirrt und mache etwas falsch?

+0

Da auf keinem Zweig und ist auf frei stehende HEAD sind die gleichen technisch gehen kann. Es ist in Ordnung, solange Sie auf dem richtigen Commit sind. – ElpieKay

Antwort

2

Gibt es eine Möglichkeit zum Anfang Zustand zurück zu bekommen von nicht in einem Zweig zu sein und nicht einen freistehenden Kopf

einfach Kasse die SHA1 referenced by your current branch mit:

git checkout $(git rev-parse HEAD) 

Wie bereits angegeben, in einer detached HEAD mode zu sein ist keine große Sache, es sei denn, Sie möchten neues Festschreiben hinzufügen (in diesem Fall ist das Erstellen eines dedizierten Zweigs, den Sie an eine Gabelung schieben würden, eine gute Idee)

Die Android Lineage guide erwähnen den Befehl

repo init -u https://github.com/LineageOS/android.git -b cm-14.1 

Das heißt, Sie zurück in die lokale Niederlassung cm-14.1 mit

git reset --hard cm-14.1 
+0

Dieser Befehl wird ausgeführt, aber mein Status und die Verzweigungsbefehle sagen immer noch, dass mein Kopf losgelöst ist, wenn ich keinen neuen Zweig erstelle. – PloobOobl

+0

@PloobOobl der Anfangsstatus wäre in einem abgetrennten Kopf, wenn Sie ein Commit auschecken.Du musst eine Zweigstelle auschecken, um einen abgetrennten Kopf zu vermeiden. – VonC

+0

Das ist nicht die offizielle Abstammungsseite und diese Anleitung ist nicht genau das Gleiche, was auf dem offiziellen [Lineage Wiki] (https://wiki.lineageos.org/devices/shamu) zu finden ist/Build # put-the-bin-Verzeichnis-in-Ihrem-Pfad der Ausführung) und ich Repo init bereits vor meiner ersten Synchronisierung, so sehe ich nicht, wie es zu meiner Frage verwandt ist. – PloobOobl

Verwandte Themen