En la raíz de mi proyecto tengo una foo
carpeta. Dentro de la foo
carpeta tengo una bar
carpeta. Me gustaría ignorar todos los cambios en todos los archivos dentro de mi bar
carpeta. Tengo esto en mi gitignore
:
/foo/bar
La carpeta está marcada: existe y tiene que ignorar los archivos. gitignore
es commit
ted Sin embargo, tengo un archivo donde hago una moción y está dentro de mi bar
carpeta. Cuando escribo
git status
dentro de mi git bash
veo el archivo que debería haber sido ignorado. ¿Cuál podría ser la razón y cómo puedo ignorar con éxito todos los archivos dentro de mi carpeta de barras?
Tenga en cuenta que los archivos se ignoraron previamente con la misma línea, pero tuve que eliminar temporalmente esa línea a commit
algo en el servidor. Después del commit
, puse de nuevo la línea en el gitignore
. Esto fue hace un tiempo, pero ahora he observado que los archivos estarán en git status
. Esperaría poder modificar los archivos ignorados sin que aparezcan en el git status
.
git add -f ignored-file
agregará un archivo incluso si está en su ignora.git status foo/bar/file-that-should-be-ignored
da?git log foo/bar/file-that-should-be-ignored
. Si no debería ser parte del repositorio, debe eliminarlogit rm --cached foo/bar/file-that-should-be-ignored
y luego confirmarlo como sugiere Reck a continuación (aunque lo haría en el archivo, no en toda la carpeta). Esto (a) eliminará el archivo de Git, (b) mantendrá el archivo en su copia local y (c) hará que el archivo se elimine cuando otrosfetch
opull
el nuevo commit.Respuestas:
¿Supongo que esta carpeta ya se ha registrado en git?
Corre
git rm -r --cached <folder>
y comprueba de nuevo.fuente
git update-index --assume-unchanged <folder>
¿quizás?Para mí, la respuesta aceptada era parte de la solución, no toda la solución. Tal vez, los otros pasos que estoy a punto de publicar fueron obvios, pero los eché de menos primero. Estos son los pasos que tomé para asegurarme de que mi
.gitignore
archivo ignorara la carpeta que quería que ignorara:git rm -r --cached .
(que elimina todo del índice de git para actualizar su repositorio de git)git add .
(para agregar todo de nuevo al repositorio)git commit -m ".gitignore Fixed"
Puede encontrar el enlace al artículo desde donde encontré la solución aquí .
fuente
Estaba teniendo este problema y me di cuenta de que git estaba ignorando los archivos / carpetas correctamente, pero mi editor de código (Visual Studio Code) estaba defectuoso y no los "atenuaba" correctamente en la barra lateral de la interfaz de usuario. Reinicié VSCode y estaban atenuados como se esperaba.
fuente
Como una adición a la respuesta aceptada
Cuando hago eso, el terminal muestra un montón de
rm
archivos en ese directorio. Entonces, para evitar otra confirmación que podría afectar innecesariamente el control remoto, hice:Después de eso, no dijo nada que confirmar y cuando modifico los archivos dentro
/foo/bar/
y hago una,git status
sigo recibiendonothing to commit
.fuente