2016-07-28 10 views
2

Ich habe ein Git-Repository auf BitBucket erstellt, um meine Skripts zu verfolgen. Ich habe nur sehr begrenzte Erfahrung mit Git. Ich benutze eine Kombination von Linux und Windows, aber ich habe Dateien zum Repository hinzugefügt, indem ich die git bash shell unter Windows verwendet habe, auf der ein Laufwerk der Linux-Freigabe zugeordnet ist.Git hat meine Dateien gelöscht. Können sie wiederhergestellt werden?

Ich habe in den letzten Tagen Dateien hinzugefügt, aber bei einem meiner Commits habe ich den falschen Kommentar eingegeben. Ich wollte das beheben und googelte nach einer Lösung. Der Vorschlag, den ich fand, war Rebase. Ich habe es versucht, aber es war nicht erfolgreich, also entschied ich mich einfach mit dem falschen Kommentar zu leben.

Danach habe ich zwei weitere Skripte erstellt, die ich dann mit 'git add' zum Repository hinzufügen wollte.

Wenn ich versuchte, diese zu begehen, bekam ich die Nachricht "Sie bearbeiten gerade ein Commit beim Rebasting Zweig 'Master' auf '3ac74cb'". Nach dieser Nachricht war eine Liste von Dateien und dann eine weitere Zeile mit Vorschlägen, was zu tun ist. Leider ist das alles jetzt aus dem Terminal-Puffer entfernt, so dass ich die Nachricht nicht mehr verfolgen kann, aber ich habe die Nachrichten im Grunde genommen.

Eine der Nachrichten schlug auch vor, dass ich einen Pull - das war aufgrund der Tatsache, dass ich Änderungen an einer Textdatei vorgenommen habe, die ich in BitBucket bearbeitet habe. Also habe ich auch einen Zug gemacht.

Ich habe grundsätzlich einen Zug gemacht, dann ein Commit erneut und dann ein Push. Keiner von diesen scheint zu funktionieren, also habe ich etwas mehr gegoogelt, um die Rebase-Nachricht loszuwerden. Basierend auf der Antwort, die ich fand, habe ich eine "git rebase -abort" gemacht.

Danach verschwanden die zwei Skripts, die ich hinzufügen wollte.

Kann ich meine Dateien von irgendwoher zurückholen oder werden sie einfach gelöscht? Wie kann ich das vermeiden, weil ich es mir nicht leisten kann, so eine Arbeit zu verlieren? Der Sinn von git ist es, keine Arbeit zu verlieren.

Wenn Sie weitere Informationen benötigen, um zu versuchen, einen Sinn zu machen, bitte fragen Sie einfach. Ich würde wirklich jede Hilfe schätzen.

+0

Als ersten Schritt klonen Sie das Remote-Repository (das auf Bitbucket) an einen neuen Speicherort und erhalten Sie eine Kopie des Inhalts, den Sie bereits verschoben haben. Ich glaube, dass die Schritte, die du gemacht hast, nichts gelöscht haben, aber ich werde dir mehr Erfahrung geben, um dir zu helfen. – Dror

Antwort

2

Es klingt wie Sie waren in der Mitte einer rebase Operation, wenn Sie Ihre neuen Dateien im Arbeitsverzeichnis erstellt. Die Verwendung von git rebase --abort setzt HEAD jedoch zurück auf den ursprünglichen Wert, als der rebase-Vorgang gestartet wurde. Wenn git status keine nicht verdeckten Dateien anzeigt, dann sind Ihre Dateien möglicherweise verloren gegangen.

git rebase ist ein sehr nützlicher Befehl, wenn er richtig verwendet wird, aber er kann auch eine Menge Ärger verursachen, wenn er falsch verwendet wird.

Für zukünftige Referenz können Sie die Commit-Nachricht für Ihren letzten Commit mit git commit -m <message> --amend ändern. Dies sollte verhindern, dass Sie aus dem gleichen Grund in Zukunft in Schwierigkeiten geraten.

Ich hoffe, das hilft.

+0

Vielen Dank für Ihre Antwort. Ich habe die Dokumentation über Rebase gelesen und bin nicht klüger. Ich weiß nicht, wozu es bestimmt ist. Warum sollte es Dateien löschen? Das hört sich nicht besonders vernünftig an, vor allem ohne Vorwarnung. Es warnt dich vor allem anderen vor dem Tod. – jss

+0

Mit 'Rebase' können Sie den Commit-Verlauf bearbeiten. Unerwünschte Commits können entfernt werden, Commits können kombiniert und Nachrichten geändert werden. Als Sie die Rebase abgebrochen haben, hat Git versucht, Sie dahin zurückzubringen, wo Sie waren, als Sie angefangen haben. Eine gute Gewohnheit zu haben ist, 'git status' vor jeder Operation zu verwenden. Es wird Sie im Voraus wissen lassen, wenn Ihre Zusammenführung, Neuausrichtung oder wenn irgendwelche Dateien Änderungen haben, die Sie nicht erwarten. Es tut mir leid, dass Sie eine schlechte Erfahrung hatten, aber ich fordere Sie auf, bei Git zu bleiben, es ist wirklich ein großartiges Werkzeug. – anierzad

+0

Vielen Dank. Du warst sehr hilfsbereit :-) Ich bin mürrisch, aber ich werde es noch einmal versuchen ... – jss