tenemos la siguiente historiarama Mover a otro punto de la historia
start master public
| | |
v v v
o---o-- ... --o---o---o
Desafortunadamente hemos hecho algunos commit en el master
rama que contiene algunos datos sensibles. Modificamos esto en una rama separada llamada pública. Ahora queremos "cortar" la rama public
para obtener un "estado" completo y limpio en public
, pero sin las piezas de historial comprometedoras que todavía están contenidas en master
. En otras palabras, queremos que la siguiente nueva historia:
start master
| |
v v
o---o-- ... --o---o
\
o <- public
Ahora retirar public
dará lugar a que el mismo árbol de trabajo como en la situación original, pero sin los detalles del historial sensibles. Posteriormente, usamos la antigua rama master
: renómbrala al unsafe
y elabora una nueva rama master
fuera de la nueva rama public
. De esta manera conservamos la vieja historia en unsafe
y somos capaces de empujar la rama public
al público sin ningún tipo de preocupaciones:
start unsafe
| |
v v
o---o-- ... --o---o
\
o---o-- ... --o <-- public
\ /
o-- .. --o-- ... --o <-- master
¿Cuáles son los comandos git derecha para lograr esto?
PD: Por supuesto, podríamos pagar start
, hacer una nueva sucursal y comprometer allí el árbol completo de trabajo de la rama public
. ¡Pero debe haber una manera diferente, más elegante, más divertida!
@phlipsy esto no está realmente fuera de tema en SU, pero migraré esto a SO tal como se solicita, para que no lo haga tiene que volver a publicar. – DMA57361
Esta información puede ayudar: http://help.github.com/remove-sensitive-data/. – Barend
Eche un vistazo a http://stackoverflow.com/questions/872565/how-do-i-remove-sensitive-files-from-gits-history – Chris