Come rimuovere un commit penzolante da GitHub?

Ieri ho spinto al mio fork di ConnectBot su GitHub . Ho spinto una volta, ho capito che non avevo apportato il cambiamento nel modo in cui volevo, ho rifatto il commit e spinto di nuovo.

Ora, GitHub ha entrambi i commit:

  • https://github.com/nylen/connectbot/commit/1cd775d – il primo commit “cattivo”
  • https://github.com/nylen/connectbot/commit/987671c – quello che voglio mantenere

Il mio ramo principale tiene traccia solo del secondo commit, ma il primo commit è ancora disponibile ed è ancora nel mio feed attività. Come posso rimuoverlo per assicurarmi che nessuno tocchi accidentalmente quel commit al posto della versione corretta?

GitHub raccoglierà periodicamente i commit (e altri oggetti) che non possono essere raggiunti da un riferimento di livello superiore (come un tag o un ramo o un reflog). Ciò significa che nel tempo (diciamo nel prossimo mese), questo object scomparirà.

Il pull dovrebbe generare un pacchetto che contiene solo oggetti a cui si fa riferimento in modo che nessuno possa ottenere quel commit come risultato di un clone o di un pull. Per esempio,

$ git clone git://github.com/nylen/connectbot.git Cloning into connectbot... remote: Counting objects: 6261, done. remote: Compressing objects: 100% (1900/1900), done. remote: Total 6261 (delta 3739), reused 5980 (delta 3520) Receiving objects: 100% (6261/6261), 3.04 MiB | 3.40 MiB/s, done. Resolving deltas: 100% (3739/3739), done. $ git cat-file -t 1cd775d fatal: Not a valid object name 1cd775d 

Se hai davvero bisogno che venga rimosso immediatamente, probabilmente dovresti contattare l’ assistenza GitHub .

Eliminare il repository e ricrearlo senza il commit errato sembra funzionare se puoi permetterti di perdere tutti i problemi. I dati scompaiono anche dall’API di commit (sebbene gli eventi push siano ancora visibili). Vedi anche: https://stackoverflow.com/a/32840254/895245

Inoltre, ho contattato il supporto e osservato in prima persona la loro capacità di eliminare i commit pendenti quando ho caricato tutte le email di commit GitHub su un repo e mi hanno chiesto di eliminarlo: https://github.com/cirosantilli/all-github-commit -emails / temi / 3

La loro attuale pagina di aiuto dice :

puoi rimuovere permanentemente tutte le visualizzazioni memorizzate nella cache del tuo repository e prelevare richieste su GitHub contattando l’assistenza GitHub.