2010-12-06 45 views
17

Ayer, presioné my fork of ConnectBot on GitHub. Empujé una vez, me di cuenta de que no había hecho el cambio como quería, rehice el compromiso y empujé nuevamente.¿Cómo eliminar un compromiso pendiente de GitHub?

Ahora, GitHub tiene tanto compromete:

Mi rama principal sólo se está realizando un seguimiento de la segundo compromiso, pero el primer compromiso aún está disponible y todavía está en mi feed de actividad. ¿Cómo puedo eliminarlo para asegurarme de que nadie tire accidentalmente esa confirmación en lugar de la versión corregida?

Respuesta

13

GitHub recogerá periódicamente cualquier compromiso (y otros objetos) que no se puedan alcanzar desde una referencia de nivel superior (como una etiqueta o una rama o un reflog). Esto significa que con el tiempo (por ejemplo, en el próximo mes), este objeto desaparecerá.

Al tirar debe generar un paquete que contenga solo los objetos a los que se hace referencia para que nadie pueda obtener esa confirmación como resultado de una clonación o extracción. Por ejemplo,

$ 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 

Si realmente necesita que sea retirado de inmediato, es probable que tenga que ponerse en contacto con GitHub Support.

+8

Después de cuatro años, ambas confirmaciones de OP están todavía disponibles en Github. – Raf

+0

El compromiso anterior todavía está disponible para SHA, pero no aparece en la lista de confirmaciones. – Quantum7

+0

Me interesaría si apareciera en otro lugar después de todo este tiempo. Por ejemplo, ¿los commits antiguos que problemas de referencia aparecen en la vista de edición para siempre? – Quantum7

2

Eliminar el repositorio y volver a crearlo sin la confirmación incorrecta parece funcionar si puede permitirse perder todos los problemas. Los datos también desaparecen de la API de confirmación (aunque los eventos de inserción siguen estando visibles). Vea también: https://stackoverflow.com/a/32840254/895245

Cuestiones relacionadas