Ich bin ein Neuling in Git und ich arbeite an Git.
Ich habe einige Dateien in Git hinzugefügt:
git add <file1>
git add <file2>
dann wollte ich das zur Überprüfung drängen, aber ich tat es fälschlicherweise
git commit
Die Dateien, die ich geändert habe, werden daher nicht überprüft.
Wenn ich nun den Befehl eingebe:
git status
es sagt
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
Ich möchte dieses Commit zurücksetzen und diese Dateien zur Überprüfung verschieben, anstatt sie festzuschreiben. Kann mir jemand mitteilen, wie ich das machen kann?
git reset HEAD^
Antworten:
Sie können nichts pushen, was noch nicht festgeschrieben wurde. Die Reihenfolge der Operationen ist:
git add
- Dies stellt Ihre Änderungen für das Festschreiben bereitgit commit
- Dadurch werden Ihre bereitgestellten Änderungen lokal festgeschriebengit push
- Dadurch werden Ihre festgeschriebenen Änderungen auf eine Fernbedienung übertragenWenn Sie ohne Commit pushen, wird nichts gepusht. Wenn Sie ein Commit durchführen, ohne etwas hinzuzufügen, wird nichts festgeschrieben. Wenn Sie ohne Festschreiben hinzufügen, geschieht überhaupt nichts. Git merkt sich lediglich, dass die von Ihnen hinzugefügten Änderungen für das folgende Festschreiben berücksichtigt werden sollten.
Die Meldung, die Sie sehen (Ihr Zweig ist um 1 Commit voraus), bedeutet, dass Ihr lokales Repository über ein Commit verfügt, das noch nicht übertragen wurde.
Mit anderen Worten:
add
undcommit
sind lokale Operationenpush
,pull
undfetch
sind Operationen , die interact mit einer Fernbedienung.Da es anscheinend einen offiziellen Workflow für die Quellcodeverwaltung gibt, in dem Sie arbeiten, sollten Sie intern fragen, wie damit umgegangen werden soll.
quelle
origin
Repository verschieben. Ich würde auch empfehlen, ein paar der Tutorials / Intros zu lesen, umgit reset HEAD^ --soft
(Speichern Sie Ihre Änderungen, zurück zum letzten Commit)git reset HEAD^ --hard
(Änderungen verwerfen, zurück zum letzten Commit)quelle
Wenn Sie nur die Änderungen wegwerfen und zum letzten Commit zurückkehren möchten (dem, das Sie teilen wollten):
Möglicherweise möchten Sie überprüfen, ob Sie dies möchten (
git log
), da Sie alle Änderungen verlieren.Eine sicherere Alternative ist das Laufen
quelle
Ich habe dies gelöst, indem ich einfach ein einfaches ausgeführt habe:
Nichts mehr. Jetzt zeigt es:
quelle
git reset HEAD ^
dann sollten die geänderten Dateien angezeigt werden.
Sie können die geänderten Dateien in einen neuen Zweig verschieben
verwenden,
git checkout -b newbranch
git checkout commit -m "files modified"
git push origin newbranch
git checkout master
Dann sollten Sie sich in einem sauberen Zweig befinden und Ihre Änderungen sollten in newbranch gespeichert werden. Sie können diese Änderung später einfach in den Hauptzweig einfügen
quelle
Entfernen Sie die angegebenen Dateien aus dem nächsten Commit
quelle