Tengo un repositorio git alojado en Github. Después de cometer muchos archivos, me estoy dando cuenta de que necesito para crear .gitignore
y excluir .exe
, .obj
archivos.
Sin embargo, ¿eliminará automáticamente estos archivos comprometidos del repositorio? ¿Hay alguna forma de forzar eso?
Respuestas:
No, no puede forzar la eliminación de un archivo que ya está confirmado en el repositorio solo porque se agregó al
.gitignore
Debe
git rm --cached
eliminar los archivos que no desea en el repositorio. (- en caché ya que probablemente desee conservar la copia local pero eliminarla del repositorio). Entonces, si desea eliminar todos los exe de su repositorio, haga(Tenga en cuenta que el asterisco * se cita desde el shell; esto permite que git, y no el shell, expanda los nombres de ruta de los archivos y subdirectorios)
fuente
git rm /\*.exe
, eliminará todos los exe en su repositoriogit
.git pull
verán sus archivos eliminados.No. Incluso con un
.gitignore
archivo existente , puede organizar los archivos "ignorados" con el-f
indicador (forzar). Si los archivos ya están confirmados, no se eliminan automáticamente.fuente
Si aún no ha presionado los cambios:
fuente
Tuve que eliminar .idea y las carpetas de destino y después de leer todos los comentarios, esto funcionó para mí:
y luego empujar para dominar
fuente
.idea
fue mi problema, supongo que también fue tuyo:)
No.
La 'mejor' receta para hacer esto es usar
git filter-branch
como está escrito aquí:La página de manual de git-filter-branch contiene ejemplos completos.
Nota Estarás reescribiendo el historial. Si ha publicado alguna revisión que contenga los archivos agregados accidentalmente, esto podría crear problemas para los usuarios de esas ramas públicas. Infórmeles, o tal vez piense qué tanto necesita eliminar los archivos.
Nota En presencia de etiquetas, use siempre la
--tag-name-filter cat
opción paragit filter-branch
. Nunca está de más y te ahorrará el dolor de cabeza cuando te des cuenta de que lo necesitasfuente
--all
para reescribir todas las ramas (locales) a la vezIncluso después de eliminar los archivos y luego confirmarlos, todavía tendrá esos archivos en el historial. Para eliminarlos, considere usar BFG Repo-Cleaner . Es una alternativa a git-filter-branch.
fuente