2014-05-11 16 views
6

Viene visualizzato un errore sha1 irreversibile. Credo che sia bloccato a cercare di scrivere file di grandi dimensioni. Il mio stato dice che sono 8 avanti. Ho provato ad aggiungere l'estensione del file a un elenco di ignora nella cartella exclude ma è ancora bloccato. Come procedo senza perdere le mie modifiche locali (oltre ai file di grandi dimensioni)?Il mio git push è bloccato su un file di grandi dimensioni. Cosa fare?

Ho provato Predict how much data will be pushed in a git push e il pacchetto è enorme ~ 650 MB.

Non so come ignorare i file da commit precedenti che non sono stati inseriti. Posso cancellare i vecchi commit senza perdere i file locali? Quindi eliminare i file di grandi dimensioni, quindi eseguire nuovamente il commit?

risposta

8

Da http://git-scm.com/book/en/Git-Tools-Rewriting-History:

Rimozione di un file da ogni invio

Ciò si verifica abbastanza comunemente. Qualcuno accidentalmente commette un enorme file binario con un additifio git add, e tu vuoi rimuoverlo ovunque. Forse hai commesso un file accidentalmente contenente una password e vuoi rendere il tuo progetto open source. filter-branch è lo strumento che probabilmente vuoi usare per scrub la tua intera cronologia. Per rimuovere un file di nome passwords.txt da tutta la cronologia, è possibile utilizzare l'opzione --tree-filtro per filtrare-branch:

$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD

ma se è solo la scorsa commettere si incasinato è possibile risolverlo con git rm large_file e git commit --amend

Problemi correlati