¿Cómo eliminar files del repository remoto de git bare?

Tengo un repository remoto de git.

Un nuevo desarrollador lo clonó, pero no tenía un file .gitignore configurado correctamente, por lo que, erróneamente, insertó algunos files no deseados en el control remoto. Cuando seleccioné los cambios y me fusioné, obtuve estos files que no se habían rastreado anteriormente. Otros también han retirado los cambios del control remoto y también tienen estos files no deseados.

¿Cómo elimino estos files del repository remoto y del remoto / origen / twigs de todos los demás?

Este es un process de tres pasos:

  1. Elimine los files de su copy del repository (ya sea con git rm o purgando por completo estos files de su historial, dependiendo de qué tan importante sea que estos files nunca estén en el repository en primer lugar)
  2. Empuje sus cambios nuevamente al repository remoto usando git push --force .
  3. Deje que todos sepan que pueden volver a tirar del repository; esto requerirá una git rebase de git rebase de su trabajo en el último compromiso conocido.

Como último paso, también puede agregar el file .gitignore al repository para que, cuando se .gitignore el repository, se ignoren todos los files correctos.

Ver github tiene una pregunta frecuente sobre esto: https://help.github.com/articles/remove-sensitive-data Estos son los pasos:

  1. Reescribe el tree del tree local (de trabajo).

    $ git filter-branch –index-filter 'git rm –cached –ignore-unmatch Rakefile' \ –prune-empty –tag-name-filter cat – –todo

  2. Fuerza empujar al control remoto.

    Maestro de origen de $ git push –force

  3. Todos tiran del control remoto (y usa --force si es necesario)

Para evitar que esto vuelva a suceder, debe verificar .gitignore en el repository (y opcionalmente configurar un gancho en el server)