Nö, du hast deine Änderungen mit dem reset --hard permanent gelöscht.
Dein Problem war das du deine Änderungen nie zu einem der branches commited hast. Wenn du was in deinem Arbeitsverzeichnis änderst musst du danach git sagen das du diese änderungen gerne zum repository hinzufügen würdest indem du sie commitest. Dann sind sie teil vom Branch und sind wenn du den branch wechselst auch wieder weg.
Mit git am besten immer wenn man irgendwas gemacht hat erst mal commiten. Es müssen nicht mal sinnige commits sein, man kann commits im nachhinein immer noch ändern, löschen, zusammenführen oder aufsplitten. Einfach immer wenn man etwas gemacht hat, z.B. sobald man für einen Tag fertig ist und die IDE schließt, oder auch nur wenn man mittagspause macht, einen commit machen dann sind die daten schon erst mal gesichert.
Musst halt nur dran denken sobald dein Feature fertig ist einmal durch deinen branch zu gehen und die commits aufzuräumen, damit die nicht ausversehen im master landen
Wenn du nicht commiten willst aber die änderungen temporär entfernen möchtest kannst du auch stashen, dabei speicherst du die änderungen zwischen und stellst den letzten commit wieder her. Beispiel:
Code: Alles auswählen
$> git stash # speichert die aktuellen änderungen
$> git co master # checkt master aus
# mach irgendwas
$> git co mein_branch # wieder zurück zum ursprünglichen branch
$> git stash pop # stellt die gestashten änderungen wieder her
Nachtrag:
Du könntest sogar glück haben, Lazarus speichert regelmäßige backups des codes als .bak dateien. Eventuell hast dei deinen code da noch