2010-11-23 22 views
5

Tengo un repositorio Git con mucho historial. Me gustaría hacer que otros lo puedan acceder, pero uno de los directorios que contiene contiene un código propietario que no se puede distribuir. ¿Hay alguna manera de hacer un clon del repositorio (con historial) que excluya ese directorio?Clone del repositorio Git excluyendo el subdirectorio

Bonificación: También me gustaría poder fusionar los cambios en el código 'público' realizado en el antiguo repositorio principal en el clon.

Respuesta

1

No puede hacer eso a menos que esté dispuesto a reescribir cada hash de confirmación. Si decide reescribir el historial del repositorio para excluir ese directorio, deberá coordinarse con cualquier persona que contribuya o consuma el repositorio.

Necesitarás filter-branch para ajustar el árbol. El script necesitará inicialmente crear un repositorio que sea un submódulo dentro del repositorio. Tendrá que comprometerse con ese repositorio interno cada vez que haya un cambio y ajustar la referencia del submódulo en el padre, comprometiéndolo también en ese nivel.

Ahora puede publicar el repositorio y nadie podrá hacer una operación del submódulo de git, pero eso es lo que desea.