Git reset funktioniert nicht
Machte ich einen commit, gezogen und zusammengefasst, einige änderungen, und dann eine zweite Begehen. Wenn ich zurück wollte zu den ersten commit, lief ich den Befehl
git reset --hard <sha hash>
Während die Antwort war: "HEAD ist jetzt bei <sha-hash - >", mein code sieht genauso aus wie es Tat, bevor ich lief diesen Befehl. In der Regel sind es änderungen, was ich vor hatte, aber es sieht aus wie etwas ist, nicht richtig funktioniert. Brauche ich zum ausführen eines anderen Befehls auf Zusammenführung aufheben, bevor die Rückstellung Kopf?
Extra info
Wenn ich git status
es sagt:
app/assets/images/.DS_Store.orig ist nicht
und ich kann es hinzufügen.
Laut git reflog
zog ich, bevor ich den commit hash1 (die ich als "vorher mischen"). Es ist ein sha-hash2 für das ziehen (die git log
nicht zeigen). Wenn ich Graben hash1 und hash2, sehe ich die Veränderungen die ich gemacht habe und rekonstruieren könnte meinen original-code aus diesem. Noch scheint dies sehr seltsam. Wenn ich versuche zu git reset
entweder von Ihnen, die ich nicht bekommen kann meinen code von vor dem merge.
- Sind Sie sicher, dass Sie wieder auf die richtige Begehen?
- nach git log, ja
- Tut
git status
sagen, es gibt Veränderungen begangen werden? Was sind Sie? - git status sagt app/assets/images/.DS_Store.orig ist nicht verfolgte, und ich kann es hinzufügen.
- Sorry, aber ich glaube nicht, dass es genug Informationen in Ihre Frage endgültig zu erklären, was Sie sehen. Vielleicht bekommen die SHA-1 des ersten und des zweiten commits (
git reflog
helfen könnte), dann verwenden Siegit diff [hash1] [hash2]
zu sehen, der Unterschied zwischen Ihnen. Dann versuchen Sie es mitgit checkout [hash1]
undgit checkout [hash2]
zu sehen, wenn Ihre arbeiten direkt änderungen entsprechend. - nach git reflog, zog ich, bevor ich den commit hash1 (die ich als "vorher mischen"). Es ist ein sha-hash2 für das ziehen (die git log nicht zeigen). Wenn ich Graben hash1 und hash-2, sehe ich die Veränderungen die ich gemacht habe und rekonstruieren könnte meinen original-code aus diesem. Vielen Dank für Ihre Hilfe. Noch scheint dies sehr seltsam. Wenn ich versuche, git reset-entweder von Ihnen, die ich nicht bekommen kann meinen code von vor dem merge
- Natürlich weiß ich nicht viel über die situation, aber es klingt wie Sie möglicherweise verwenden
git reset
wenn Sie wären besser dran mitgit checkout
. Wenn Sie wollen, ziehen Sie eine alte version des Codes, die Sie verwenden würden, Kasse. In der Regel werden Sie nicht tun, einen hard-reset, es sei denn, Sie beging einen Fehler, den Sie wollen, dauerhaft aus der Geschichte gelöscht. Ich empfehle die Lektüre von "Zurücksetzen" Entzaubert nur um sicherzustellen, dass Sie nicht versehentlich verlieren Geschichte. - Sind Sie sicher, dass Sie nicht mit einem editor Zwischenspeichern der Dateien? Bitte geben Sie mehr Informationen über Ihre Benutzung-Fall, so dass wir verstehen Ihre situation.
- Nicht verfolgte Dateien sind davon nicht berührt
git reset --hard
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin sicher, den sha1-Wert, den Sie im 'git reset --hard" ist der KOPF.
Wenn Sie zurücksetzen möchten, den KOPF für den ersten commit,führen Sie das Kommando wie folgt:
oder:
diese Website vielleicht helfen, Sie wissen, wie 'git reset' Arbeit:git-reset
Ich glaube nicht, verwenden Sie die Befehlszeile für den reset, da gitk (Zweig-viewer) können dies tun. Manchmal zurücksetzen funktioniert nicht. Ich habe dann löschen Sie alle Verzeichnisse, so dass nur .git-Ordner. Es passiert oft, dass einige Dateien können nicht gelöscht werden. Das ist das problem warum git nicht zurückgesetzt. Sie müssen schließen Sie die Programme, die die Dateien beibehalten.
Den:
wird nicht funktionieren, wenn:
.gitattributes
),Vielleicht die Lösung wäre, zurück zu gehen, was Sie auf remote-branch:
sowie
rebase
Hasch oben drauf odergit cherry-pick
dem verpflichtet, was man wirklich braucht.Wenn die oben nicht hilft, sollten Sie auch:
git branch -a
), nicht auf eine freistehende,git reflog
für mehr details über Eure Geschichte,git blame some/file
zu zeigen, auf welche revision deine Zeile code geändert wurde, dies hilft Ihnen zu verfolgen, das problem, bei dem Begehen Sie Ihren code so aussieht, wie Sie würden nicht erwarten,revert
es.Ich denke, Sie sollten geben Sie die ersten 7 Zeichen des SHA der zweiten commit, nicht der erste. Zum Beispiel, Sie haben 2 verpflichtet:
Begehen 212323b232g2h3jj232j323kkk23
Autor:
Datum: ...11:40 PM
...
Begehen abcdefb232g2h3kk239j183kkk24
Autor:
Datum: ...10:00 Uhr
...
WENN Sie zurücksetzen möchten, den ersten commit sollten Sie eingeben:
git reset abcdefb