2017-08-14 6 views
3

Mein Programmierpartner und ich, Git und Gitkraken ziemlich neu, haben ein paar Fehler gemacht, ein paar Pushs gemacht und in der falschen Reihenfolge Commits gemacht, und die Dinge ziemlich verpfuscht. Ich würde gerne einen Snapshot aus mehreren Commits zurückholen und manuell mit dem aktuellen Stand des Codes vergleichen. Ein Befehl entlang der Linien vonZurück zu einem früheren Commit in Gitkraken

„Nehmen Sie das Arbeitsverzeichnis Zustand diese historischen commit“ oder besser noch, „Gib mir den Inhalt dieses historischen in ein anderes Arbeitsverzeichnis begehen, die ich nennen werde "

Die mir gegebenen Optionen sehen nicht genau so aus. Ich sehe "reset master to this commit" in mehreren Varianten, aber keiner dieser Titel überzeugt mich, dass ich den vorherigen Zustand betrachten werde, ohne den Pfad zurück zum aktuellen Zustand zu beschädigen. Fehle ich etwas? Was ist der beste Weg, um das zu tun, was ich versuche?

Antwort

0

Ich schlage vor, Sie verwenden git reflog, dieser Befehl enthält einen lokalen Verlauf Ihrer Commits und Änderungen, mit diesem Protokoll sehen Sie alle Ereignisse von Ihrem lokalen Repo.

Nach der Feststellung der genauen verpflichten, dass Sie wiederherstellen möchten, können Sie das als Ausgangspunkt mit git reset --soft [email protected]{n}

was --soft tut, ist

Does not touch the index file or the working tree at all (but resets the 
head to <commit>, just like all modes do). This leaves all your changed 
files "Changes to be committed", as git status would put it. 

Danach setzen begehen, werden Sie alle Änderungen haben In Ihrem Stage-Bereich können Sie entweder entscheiden, ob Sie sie erneut übernehmen oder etwas ändern.

Ich würde vorschlagen, Sie lesen this Abschnitt von Git's book und speziell this Abschnitt über das Rückgängigmachen von Dingen.

PS. Als Extra können Sie git reset so oft verwenden, wie Sie möchten, weil alle Befehle, die Sie verwenden, in git reflog gespeichert sind, und wenn Sie etwas tun, was Sie nicht möchten, können Sie es einfach auch rückgängig machen.

Hoffe, dass es

0

hilft ... aber keiner dieser Titel überzeugen mich, dass ich werde bei ohne die vorherige Zustand zu sehen bekommen den Weg zurück auf den aktuellen Stand zu beschädigen ...

Zunächst können Sie immer zurück gehen. GitKraken bietet die handliche Undo Schaltfläche, mit der Sie die meisten Dinge, die Sie tun, mit einem einfachen Knopfklick wiederherstellen können. Wenn Sie sicher gehen möchten, dass Sie einfach zurückgehen können, können Sie einfach eine backup Verzweigung erstellen. Wenn etwas schief geht, schau es dir an und du bist zurück.

So können Sie entspannen und einfach Dinge ausprobieren, ohne sich um etwas zu kümmern. Die Frage ist nun, was Sie eigentlich tun wollen:

  • „den Zustand Arbeitsverzeichnis zu diesem historischen Nehmen Sie verpflichten“

    Wenn Sie nur in einem früheren Zustand zurückkehren möchten (dcommit), können Sie die reset <branch> to this commit - hard verwenden. Sie sind wieder bei dem ausgewählten Commit, als ob nichts passiert wäre. Wenn Ihr Prevous-Status immer noch von jedem Zweig erreichbar ist (dies ist der Fall, wenn Sie einen Backup-Zweig erstellt haben), können Sie immer noch alle Commits und ihre Änderungen betrachten.

    Beachten Sie, dass Sie bei einem Hard-Reset nicht vorgenommene und nicht ausgeführte Änderungen verlieren.

  • „Gib mir den Inhalt dieses historischen begehen in einem anderen Arbeits Verzeichnis, die ich nennen wird“

    Git nur ein Arbeitsverzeichnis nicht kennt, so ist dies nicht ohne weiteres möglich. Sie können jedoch Ihren aktuellen Status mit einem früheren vergleichen, wie es @Christopher Díaz Riveros vorgeschlagen hat. Statt eines hard Reset können Sie einen soft einen durchführen. Dadurch wird Ihr Arbeitsverzeichnis auf das ausgewählte Commit zurückgesetzt, aber alle Änderungen (im Vergleich zu Ihrem vorherigen Status) als abgestufte Änderungen beibehalten. Dadurch können Sie sie leicht überprüfen, da sie im rechten unteren Teil von GitKraken angezeigt werden und Sie können sie nach Bedarf verwerfen oder festschreiben.

Verwandte Themen