Jak mogę zresetować zdalne i lokalne repozytorium Git, aby usunąć wszystkie zatwierdzenia?
Chciałbym zacząć od nowa z obecnym Head jako początkowym zatwierdzeniem.
Jak mogę zresetować zdalne i lokalne repozytorium Git, aby usunąć wszystkie zatwierdzenia?
Chciałbym zacząć od nowa z obecnym Head jako początkowym zatwierdzeniem.
Odpowiedzi:
Całkowicie zresetowany?
Usuń .git
katalog lokalnie.
Odtwórz repostorium git:
$ cd (project-directory)
$ git init
$ (add some files)
$ git add .
$ git commit -m 'Initial commit'
Wypchnij do zdalnego serwera, nadpisując. Pamiętaj, że robiąc to, zepsujesz wszystkich innych… lepiej bądź jedynym klientem.
$ git remote add origin <url>
$ git push --force --set-upstream origin master
--allow-empty
flagę na końcu git commit -m 'Initial commit'
.
git push --force --set-upstream origin master
ale cała reszta działała zgodnie z opisem
Najpierw postępuj zgodnie z instrukcjami zawartymi w tym pytaniu, aby zgnieść wszystko do jednego zatwierdzenia. Następnie wykonaj wymuszone naciśnięcie pilota:
$ git push origin +master
I opcjonalnie usuń wszystkie inne gałęzie, zarówno lokalnie, jak i zdalnie:
$ git push origin :<branch>
$ git branch -d <branch>
Gdybym był tobą, zrobiłbym coś takiego:
Zanim cokolwiek zrobisz, zachowaj kopię (lepiej bezpiecznie niż przepraszam)
git checkout master
git checkout -b temp
git reset --hard <sha-1 of your first commit>
git add .
git commit -m 'Squash all commits in single one'
git push origin temp
Po wykonaniu tej czynności możesz usunąć inne gałęzie.
Wynik: Będziesz mieć gałąź z tylko 2 zatwierdzeniami.
Użyj,
git log --oneline
aby zobaczyć swoje zatwierdzenia w minimalistyczny sposób i znaleźć SHA-1 dla zatwierdzeń!