2010-02-14 15 views
6

He empezado a cambiar mis proyectos de subversión privadas a GIT (Github) y liberar el código para el público. Por lo tanto, soy un git novato.Git: borrar una única revisión remota

Desafortunadamente, no es una revisión de un proyecto que contiene datos confidenciales. La revisión no está etiquetada, solo sé su valor hash.

¿Hay una manera de borrar por completo que revisión en particular desde el repositorio git remoto? Es un proyecto en solitario, por lo que nadie será perjudicado por la operación.

+0

Ver "Extracción de datos sensibles" en GitHub: http://help.github.com/removing-sensitive-data/ –

+0

Posible duplicado: http://stackoverflow.com/questions/872565/how-do- i-remove-sensitive-files-from-gits-history –

+0

el tutorial que está enlazando no proporciona una solución para mi problema. Simplemente borra el archivo de todas las revisiones. No quiero eliminar el archivo, solo quiero eliminar la revisión. De todos modos, pude encontrar la solución buscando en Google, encontrando otra pregunta SO. – dgraziotin

Respuesta

3

El puesto se encuentra here resuelto mi problema.

Si el envío que desea corregir no es el más reciente:

  1. git rebase --interactive $parent_of_flawed_commit

    Si desea corregir varias entregas defectuosas, pase la matriz de la más antigua de ellos.

  2. Un editor se van a plantear, con una lista de todos los envíos desde el que diste.

    1. Cambio pick a edit frente a ningún commit que desea corregir.
    2. Una vez que guardes, git reproducirá los commits listados.
  3. Git caerá de nuevo a la cáscara para cada confirmación que ha dicho que desea editar:

    1. Cambiar el commit en cualquier forma que desee.
    2. git commit --amend
    3. git rebase --continue

La mayor parte de esta secuencia se explicará a usted por la salida de los diversos comandos a medida que avanza. Es muy fácil, no necesitas memorizarlo, solo recuerda que git rebase --interactive te permite corregir confirmaciones sin importar cuánto tiempo hayan pasado.

+0

gracias por el formato, jleedev – dgraziotin

+0

Creo que usar 'squash' en lugar de' edit' lo hace aún más fácil. –

Cuestiones relacionadas