2012-09-09 15 views
5

Actualmente tengo un repositorio git personal para algún software en el que he estado trabajando. El repositorio solía contener información personal de otras personas en algunos de los archivos de configuración, que tengo en git porque son útiles para rastrear y ayuda a documentar cómo funciona el archivo de configuración. El git repo también muestra cómo el archivo de configuración ha cambiado con el tiempo, en términos de qué versión requiere qué. Recientemente tuve el deseo de publicar el proyecto en github, así que creé una sucursal y eliminé la información personal de la cabeza, reemplazando cada elemento con marcadores de posición.¿Cómo puedo "censurar" el historial de un repositorio de git?

Además de volver a cada revisión y "cambiar el historial", ¿hay alguna manera de "censurar" la información anterior en todas las ocurrencias (cambiarla de una vez) reemplazándola con la nueva información en todos ocurrencias, entonces, si alguien lo tirara de nuevo, ¿verían los marcadores de posición en lugar de la información personal?

+0

Borra la carpeta '.git' (todo el historial) y comienza con los archivos ahora seguros que tienes? http://stackoverflow.com/q/9683279/139010 –

+0

"El git repo también muestra cómo el archivo de configuración ha cambiado con el tiempo, en términos de qué versión requiere qué". Esto significa que me gustaría mantener * algún * historial, ya que me parece útil para el desarrollo futuro, pero gran parte es irrelevante y expone información de identidad. – DavidJFelix

Respuesta

6

Puede ejecutar una rama de filtro git que modificará el historial de la sucursal y eliminará lo que desee. Luego, podría agregar un archivo de ejemplo (marcador de posición) en su lugar. Check out github's remove-sensitive-data help page

+0

¿Esto simplemente filtraría el archivo de configuración o filtraría las revisiones línea por línea? Digamos en la primera revisión que el archivo de configuración decía "John Doe", pero en la segunda revisión decía "Name: John Doe". ¿Puedo filtrarlo para que el primer archivo de configuración diga "[Nombre]" y el segundo diga "Nombre: [Nombre]"? Me gustaría preservar el historial de las ediciones sin guardar información que considero irrelevante e innecesaria de compartir. – DavidJFelix

+0

@DavidJFelix filter-branch puede hacer * cualquier cosa * con el contenido de filter-branch's --tree-filter, pero tendrá que escribir su propia secuencia de comandos o programa para hacer las modificaciones que desee para cada revisión. – wjl

+0

@wjl De acuerdo. Eso parece razonable. Con eso, marcaré esto como aceptado. Puedo manejar el resto. – DavidJFelix

Cuestiones relacionadas