tag - git ver archivos modificados
¿Por qué ''git commit'' no guarda mis cambios? (11)
Como dice el mensaje:
no se agregaron cambios a commit (use "git add" y / o "git commit -a")
Git tiene un "área de preparación" donde los archivos deben agregarse antes de comprometerse, puede leer una explicación aquí .
Para su ejemplo específico, puede utilizar:
git commit -am "save arezzo files"
(note el extra a
en las banderas, también puede escribirse como git commit -a -m "message"
- ambos hacen lo mismo)
Alternativamente, si desea ser más selectivo con respecto a lo que agrega al compromiso, use el comando git add para agregar los archivos apropiados al área de preparación, y el estado de git para obtener una vista previa de lo que se agregará (recuerde prestar atención a la redacción utilizada).
También puede encontrar documentación general y tutoriales sobre cómo usar git en la página de documentación de git que brindará más detalles sobre el concepto de almacenamiento intermedio / adición de archivos.
Otra cosa que vale la pena conocer es la clasificación interactiva : esto le permite agregar partes de un archivo al área de preparación, por lo que si ha realizado tres cambios de código distintos (para la funcionalidad relacionada pero diferente), puede usar el modo interactivo para dividir el Cambia y agrega / confirma cada parte a su vez. Tener compromisos más pequeños como este puede ser útil.
Hice un git commit -m "message"
como este:
> git commit -m "save arezzo files"
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: arezzo.txt
# modified: arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
Pero luego, cuando hago git status
, muestra los mismos archivos modificados:
> git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: arezzo.txt
# modified: arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
¿Qué estoy haciendo mal?
Copié un pequeño subproyecto que tenía que estaba bajo el control de código fuente de Git en otro proyecto y olvidé eliminar la carpeta .git. Cuando fui a confirmar recibí el mismo mensaje anterior y no pude borrarlo hasta que .git
carpeta .git
.
Es un poco tonto, pero vale la pena comprobar que no tienes una carpeta .git en la carpeta que no se comprometa.
Deberías hacer:
git commit . -m "save arezzo files"
Encuentro este problema apareciendo cuando he hecho un git add .
en un subdirectorio debajo de donde vive mi archivo .gitignore
(el directorio de inicio de mi repositorio, por así decirlo). Intente cambiar los directorios a su directorio superior y ejecute git add .
seguido de git commit -m "my commit message"
.
La razón por la que esto sucede es porque tienes una carpeta que Git ya está rastreando dentro de otra carpeta a la que Git también hace un seguimiento. Por ejemplo, tuve un proyecto y le agregué una subcarpeta. Ambos estaban siendo rastreados por Git antes de que pusiera uno dentro del otro. Para detener el seguimiento del interior, encuéntrelo y elimine el archivo Git con:
rm -rf .git
En mi caso, tenía una aplicación de WordPress y la carpeta que agregué dentro era un tema. Así que tuve que ir a la raíz del tema y eliminar el archivo Git, de modo que el padre, la aplicación WordPress, realizaría un seguimiento de todo el proyecto.
No has añadido los cambios. O bien agregarlos específicamente a través de
git add filename1 filename2
o agregar todos los cambios (desde la ruta raíz del proyecto)
git add .
o usa la taquigrafía -a
mientras cometes:
git commit -a -m "message".
Podrías haber hecho un
git add -u -n
Para verificar qué archivos modificó y va a agregar (ejecución en seco: opción -n), y luego
git add -u
Para agregar archivos recién modificados
Si tiene una subcarpeta, que fue clonada de otro repositorio git, primero debe eliminar el archivo $ .git $ del repositorio secundario: rm -rf .git
luego puede cambiar a la carpeta principal y usar git add -A
Tal vez una cosa obvia, pero ...
Si tienes problemas con el índice, usa git-gui . Obtienes una muy buena vista de cómo funciona realmente el índice (área de preparación).
Otra fuente de información que me ayudó a comprender el índice fue Scott Chacons "Getting Git" página 259 y versiones posteriores.
Comencé usando la línea de comandos porque la mayoría de la documentación solo mostraba que ...
Creo que git-gui y gitk realmente me hacen trabajar más rápido, y me deshice de los malos hábitos como "git pull", por ejemplo ... Ahora siempre busco primero ... Mira cuáles son realmente los nuevos cambios antes de fusionarme.
Tuve un problema en el que estaba commit --amend
incluso después de emitir un git add .
y todavía no funcionaba. Resulta que hice algunas personalizaciones .vimrc
y mi editor no funcionaba correctamente. Arreglando estos errores para que vim
devuelva el código correcto, resolvió el problema.
Tuve un problema muy similar con el mismo mensaje de error. "Cambios no preparados para cometer", sin embargo, cuando hago una diferencia, muestra diferencias. Finalmente me di cuenta de que hace un tiempo había cambiado un caso de directorios. ex. "PostgeSQL" a "postgresql". Como recuerdo ahora, a veces git dejará uno o dos archivos atrás en el antiguo directorio de casos. Luego, cometerás una nueva versión para el nuevo caso.
Por lo tanto, git no sabe en cuál confiar. Así que para resolverlo, tuve que ir al sitio web de github. Entonces puedes ver ambos casos. Y debe eliminar todos los archivos en el directorio de la caja incorrecta. Asegúrese de tener la versión correcta guardada o en el directorio de la caja correcta.
Una vez que haya eliminado todos los archivos en el directorio del caso anterior, ese directorio completo desaparecerá. Entonces haz un commit.
En este punto, debería poder hacer un Pull en su computadora local y no volver a ver los conflictos. Así poder cometer de nuevo. :)