2012-12-05 10 views
160

Chcę usunąć całą historię zatwierdzeń, ale zachowaj kod w bieżącym stanie.Jak usunąć całą historię zatwierdzania w github?

ponieważ w mojej historii zatwierdzania jest zbyt wiele niewykorzystanych zatwierdzeń.

Jak mogę to zrobić?

czy jest jakieś polecenie git?

git filter-branch ? 
git rebase ? 
... 

mój gospodarz kodu w github.com.

Odpowiedz

529

Usunięcie folderu .git może spowodować problemy w repozytorium git. Jeśli chcesz usunąć wszystkie swoje popełnienia historii, ale zachować kod w jego obecnym stanie, jest bardzo bezpieczny, aby to zrobić, jak w poniższym przykładzie:

  1. Checkout

    git checkout --orphan latest_branch

  2. Dodaj wszystko pliki

    git add -A

  3. zatwierdzić zmiany

    git commit -am "commit message"

  4. Usuń gałąź

    git branch -D master

  5. zmienić nazwę bieżącego gałęzi opanować

    git branch -m master

  6. Wreszcie siła zaktualizować repozytorium

    git push -f origin master

PS: To nie będzie zachować swój stary popełnienia historię wokół

+0

Czy mogę wykonywać żądania pobierania po tym, z rozwidlonym repozytorium? – rraallvv

+5

Niesamowite. :) 0. Klon: 'git clone https: // github.com/blahblah/blahblah' :) – pidosaurus

+1

@rraallvv Nie, nie możesz powiedzieć: * Nic do porównania, master i x branch ma zupełnie inną historię commitów. * Żądanie Pull na Github zostanie automatycznie zamknięte po wciśnięciu przycisku – NoNameProvided

63

Jeśli jesteś pewien, że chcesz usunąć całą historię zatwierdzania, po prostu usuń katalog .git w katalogu głównym projektu (zauważ, że jest on ukryty). Następnie zainicjować nowe repozytorium w tym samym folderze i połączyć go z repozytorium GitHub:

git init 
git remote add origin [email protected]:user/repo 

teraz zatwierdzić aktualną wersję kodu

git add * 
git commit -am 'message' 

i wreszcie wymusić aktualizację na GitHub:

git push -f origin master 

Proponuję jednak utworzenie kopii zapasowej historii (folder .git w repozytorium) przed wykonaniem tych kroków!

+1

ale jeśli po prostu chcesz zachować ostatnie 10 popełnić? – Chinaxing

+0

Czy mogę wykonywać żądania pobierania po tym, z rozwidlonym repozytorium? – rraallvv

+1

to działa, ale będzie przechowywać historię z poprzednich zatwierdzeń na drzewie, jak @Desta Haileselassie Hagos powiedział –

Powiązane problemy