work - gitignore specific file
.gitignore no funciona (5)
Esta pregunta ya tiene una respuesta aquí:
Tengo un archivo .gitignore
en la raíz de mi repositorio. El archivo .gitignore
tiene el siguiente patrón para excluir los archivos compilados de Python y esa es la única línea en el archivo.
*.pyc
Ahora cuando hago lo siguiente en la raíz del repositorio.
git init
git add .
git status
Muestra que todavía sigue el archivo .pyc
e intenta agregarlo como un archivo nuevo. Ver salida a continuación.
Información del sistema: Windows 7, cygwin
Nota: Este problema CLARAMENTE no se trata de que el archivo ignorado ya esté siendo rastreado. También probé finales de línea estilo DOS y Unix en el archivo .gitignore
.
git status
da:
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: .gitignore
# new file: feedapp/__init__.py
# new file: feedapp/appconfig.py
# new file: feedapp/appconfig.pyc
¿Cómo puedo solucionar esto más?
He tenido exactamente el mismo problema, incluso si preparo un archivo .gitignore antes de la primera vez que agrego algo. Y encontré que el problema estaba en el espacio en blanco en mi archivo de ignorar. NO agregue ningún espacio en blanco en su archivo de ignorar y vuelva a intentarlo. Creo que todo funcionará bien. Buena suerte
Tenía exactamente el mismo problema. Descubrió que "someText"> .gitignore creó un archivo con una codificación extraña. Cambié a UTF-8, luego todo funcionó bien.
Verifique los finales de línea en su archivo .gitignore. En un repositorio de OS X, el mío usaba terminaciones de línea CR. Todo funcionó de nuevo después de cambiar a LF.
perl -p -e ''s//r//n/g'' < .gitignore > .gitignore-new
mv .gitignore-new .gitignore
Es probable que los jockeys de consolas quieran usar sed
.
Antecedentes: copié mi copia de trabajo de un repositorio de Windows después de un corte de energía.
.gitignore
solo se aplica a los archivos sin .gitignore
. Si está rastreando un .gitignore
entonces .gitignore
no se aplicará. Elimine el .pyc
con git rm
y la próxima vez que haga un git status
éste (y cualquier otro) no se mostrará en la lista de archivos sin seguimiento ni se agregará automáticamente.
De lo contrario, si necesita ignorar un archivo que ya está bajo control de versión, actualice el índice para ignorar los cambios en los archivos que ya están bajo control de versión:
git update-index --assume-unchanged <files>
Para obtener más información, consulte git-update-index (1) Página manual , la respuesta relacionada al archivo .gitignore no ignorando y la respuesta relacionada a la pregunta ( GIT: Ignorar archivos controlados por la versión ) .
man gitignore
:
Un archivo de gitignore especifica intencionalmente ** archivos sin seguimiento ** que git debe ignorar. Tenga en cuenta que todos los archivos de gitignore realmente se refieren solo a archivos que aún no han sido rastreados por git
git rm file
dejará de rastrearlos. No puedo encontrar una manera de eliminar todos los archivos ignorados del repositorio.
Como usted señala, los archivos no parecen existir en el repositorio. En ese caso, el comportamiento de su git
no concuerda ni con la documentación ni con el comportamiento mío, y no puedo ayudarlo.
$ mkdir foo
$ cd foo
/home/ikegami/foo
$ mkdir feedapp
$ touch feedapp/__init__.py
$ touch feedapp/appconfig.py
$ touch feedapp/appconfig.pyc
$ echo ''*.pyc'' > .gitignore
$ git init
Initialized empty Git repository in /home/ikegami/foo/.git/
$ git add .
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: .gitignore
# new file: feedapp/__init__.py
# new file: feedapp/appconfig.py
#
$
Quizás lo hiciste
git init
git add .
echo ''*.pmc'' >> .gitignore
git init
git add .
en cuyo caso puede solucionar el problema usando
git rm --cached -r .
git add .