Git rimuove solo spingere l'ultimo impegno locale
Domanda
Ho fatto un sacco di cambiamenti sulla mia versione Git locale di un progetto di rotaie che non voglio perdere, tuttavia nel farlo, ho creato accidentalmente un venditore Vendor / Bundle in Git.
Mi sono reso conto non appena ho commesso ciò che ho fatto questo e ho fatto un Git RM per la cartella (e ha aggiunto la cartella a Gitignore) e ha commesso di nuovo.Tuttavia, ora non posso spingere l'originale perché il bundle è troppo grande.
Cosa ho bisogno
- .
- Come posso mantenere le modifiche (e i nuovi file) che ho fatto.
- Mentre si rimuove la cartella Bundle da Git History
- e non spingendo che si impegna con loro dal momento che la directory è troppo grande
Ho cercato per vari modi di reimpostare morbido qui, ma sono bloccato ..
Soluzione
È possibile eseguire git reset --soft HEAD~x
dove x è il numero di revisione che desideri ripristinare - 2 nel tuo caso e quindi aggiungere la directory al file Gitignore e rimuoverlo anche dall'area di gestione.
Altri suggerimenti
Penso di aver trovato la risposta:
.Ciò si verifica abbastanza comunemente.Qualcuno commette accidentalmente un enorme file binario con un aggiunto Git sconveniente., E vuoi rimuoverlo ovunque.Forse hai accidentalmente commesso un file che conteneva un Password e vuoi rendere il tuo progetto open source.filtro-ramo. Lo strumento è probabile che tu voglia usare per strofinare la tua intera cronologia.Per Rimuovi un file denominato Passwords.txt dalla tua intera cronologia, puoi Utilizzare l'opzione - filtro -Tree per filtrare-branch:
sorgente :
. git filter-branch --tree-filter 'rm -f /vendor/bundle' HEAD