git branch sin historial

Mi git repo contiene passwords confidenciales que, por razones fuera de mi control, no se pueden eliminar en este momento. En este momento, todo está bien porque este repository es solo interno, pero se me ha pedido que cree una twig que sea segura para compartir con los socios.

¿Hay alguna manera de crear una twig en git y luego eliminar los files de la misma de manera que no se puedan recuperar utilizando el logging?

Parece una posibilidad remota, pero pensé en preguntar. La única solución en la que puedo pensar es copyr el tree de files a un nuevo repository git sin el file confidencial, pero luego perdería la posibilidad de fusionar los cambios del socio de nuevo con mi repository.

Una cosa que podría hacer es crear una twig de su repository, editar las passwords y luego crear un clon superficial (con profundidad 1) de ese repository que le daría a los socios. Pueden hacer parches y todo lo demás contra ese clon, pero no pueden ver toda la historia y no pueden empujar el repository a ningún otro lado. Si solo están haciendo cambios, entonces esta debería ser una solución viable. Aún puede aceptar parches de ellos y aplicarlos a su repository principal.

Consulte la opción --depth de git clone para get más información.

Utilice filter-branch :

Supongamos que desea eliminar un file (que contiene información confidencial o violación de derechos de autor) de todas las confirmaciones:

git filter-branch –tree-filter 'rm nombre de file' HEAD

git clone –depth 1 url_of_your_remote_repository

Limitación del repository superficial

  • no puede clonar ni recuperar desde el repository superficial (Eso significa que no puede crear un nuevo repository usando esta copy superficial)

  • no pudo ver el historial completo usando el command git log.

  • Su solución viable, su socio puede hacer algunos cambios y hacerla como "parches" y enviársela a su compañero si quiere que su pareja cambie. Luego, aplique los parches en su tree de trabajo actual / las twigs que desee aplicar.

    Más

Apnetworkingaré un par de respuestas. Supongamos que puede crear una twig que no contenga datos confidenciales. Te nublas y luego haces un clon superficial de la twig que no contiene el historial y, por lo tanto, no puedes sacarlo, pero podría salir de ti.

La otra cosa sería clonar un nuevo repository y usar las herramientas de eliminación de git para eliminar datos confidenciales. Esto crearía un repository distinto que no podría interactuar excepto a través de parches con el primero, pero tendría todo el historial.