2010-11-04 12 views
27

Tengo un proyecto en GitHub detrás de un repositorio privado. Quiero hacer público el repositorio. Sin embargo, mi proyecto usa claves secretas.Hacer que un proyecto Git sea de código abierto cuando tiene claves secretas

¿Cómo puedo hacer público el proyecto mientras protejo el "historial" de esas claves secretas? Supongo que soy SOL, y simplemente debería invalidar las claves para evitar su uso.

Tenga en cuenta que esta no es la misma pregunta que How to open-source an application that uses API keys

o

How to handle 'open-sourcing' your application, when it uses a personal API key?

Como mi proyecto ya está en Git, toda la historia de origen puede ser vista fácilmente. Lo que supongo que podría hacer es ramificar un proyecto separado con las claves API ocultas, y hacer que el repositorio sea público. Pero luego los usuarios se perderían todo el historial de bifurcaciones, lo cual les puede causar curiosidad (sé que lo haría).

Respuesta

25

Puede eliminar las claves secretas del repositorio con un martillo como git filter-branch. Hay una buena explicación en GitHub's help pages.

+0

Mis claves secretas son, por ejemplo, en settings.py. ¿La solución sería extraer ese archivo de todo el historial y luego volver a enmendarlo sin la información secreta? – Alper

+1

Esa es la opción más simple y la que se explica en la página vinculada. Pero el comando pasado a 'git filter-branch' básicamente puede hacer cualquier cosa que desee, por ejemplo, pasar el archivo a través de' sed'. – MForster

Cuestiones relacionadas