Więc historia. Mój dysk twardy zginął na komputerze A. Prawie cała moja praca została już zepchnięta do GitHub i wszystko było na tym froncie, zapisz jedno repozytorium. Więc, zdając sobie z tego sprawę, dowiedziałem się: „hej, fajnie, właściwie właśnie wysłałem do Guya Guyersona plik tar ostatnich zmian.” Dostaję więc plik tar, a potem robię coś głupiego / pokazuję, jak dużo jest GobHub noob. Zamiast klonować repozytorium, a następnie dodawać zaktualizowane pliki, a następnie naciskać, myślę sobie: powinienem być w stanie po prostu nacisnąć te pliki, bez problemu. Więc git init, dodaj pilota, a następnie naciśnij, ale to nie działa ... ponieważ scalenia są dziwne. Wiem, że połączenia są złe, więc postanawiam zmusić te pliki do aktualizacji i wciśnięcia -f. Ponieważ jednak jest to nowy katalog .git, wypycha wszystko i tracę całą historię zatwierdzania, a wszystkie pliki, które nie znajdowały się w archiwum, zniknęły.
Czy mimo to wracamy do tego, biorąc pod uwagę, że obecna wersja lokalna nie ma tam pamięci o każdym wcześniejszym zatwierdzeniu? Mam początek skrótu, który nadpisał, ale pilot również nie ma pamięci tego zatwierdzenia.
Myślę, że awaria dysku twardego mogła spowodować kolejną ofiarę, ponieważ moja frustracja się skończyła i chciałem po prostu przesłać aktualizacje, podczas gdy wciąż miałem je na tej starszej maszynie.
Dzięki, Zach
Odpowiedzi:
Wersja online GitHub prowadzi rejestr tych starych zatwierdzeń, po prostu nie wiedziałem, jak do nich uzyskać dostęp. Dla wszystkich przyszłych czytelników: jeśli masz identyfikator zatwierdzenia, który przypadkowo nadpisałeś, możesz uzyskać do niego dostęp w ten sposób:
https://github.com/userName/repoName/tree/commitNum
Następnie możesz użyć listy rozwijanej Drzewo / gałąź, aby utworzyć nową gałąź z tego zatwierdzenia. To może być następnie sklonowane do lokalnego katalogu, a następnie można połączyć, itp. Stamtąd.
źródło