¿Qué significa "Cambios no organizados para la confirmación"?

239

Pensé que si quieres rastrear los archivos deberías git add [files you want to track]

No sé por qué recibí los mensajes Changes not staged for commit.

Si esos archivos no fueron organizados, no debería gitmostrarme que esos archivos eran Untrackedasí

ingrese la descripción de la imagen aquí

Todo lo que hice fue crear una nueva característica desde la developsucursal y trabajar en la feature/change_excel_formatsucursal

Pensé que esos archivos deberían estar en stagedestado,

Pero git statusme dijoChanges not staged for commit

ingrese la descripción de la imagen aquí

Para breve, lo único que hay 3 etapas en git untracked, staged, committed ¿Puede alguien decirme, ¿cuál fue el escenario en el deChanges not staged for commit ingrese la descripción de la imagen aquí

Entonces, si modifiqué el archivo a (ya en el repositorio)

y escribe git st, el git me diráChanges not staged for commit

si yo git aentonces el archivo aestará enstaged status

si modifiqué el file aahora, habrá dos estados de file ain git, ¿verdad?

Entonces, ¿tengo que decidir si hacer que staged ase confirme o hacer not stage aque se organice, y luego file ase descartará la escenificación anterior ?

ingrese la descripción de la imagen aquí

nueva bicicleta
fuente
3
si recibe este mensaje y desea que este archivo (a) deba confirmarse, asegúrese de estar en la ruta de directorio correcta (ruta raíz del proyecto para agregar todo) mientras agrega git
Sadee

Respuestas:

325

cuando cambia un archivo que ya está en el repositorio, debe git addvolver a hacerlo si desea que se organice por etapas.

Esto le permite confirmar solo un subconjunto de los cambios que realizó desde la última confirmación. Por ejemplo, supongamos que tiene archivo a, archivo by archivo c. Modifica el archivo ay el archivo, bpero los cambios son de naturaleza muy diferente y no desea que todos estén en una sola confirmación. Emite

git add a
git commit a -m "bugfix, in a"
git add b
git commit b -m "new feature, in b"

Como nota al margen, si desea confirmar todo, simplemente puede escribir

git commit -a

Espero eso ayude.

Stefano Falasca
fuente
1
Entonces, si esos archivos ya están en repositorio. y los he cambiado, también puedo git commit THEMdirectamente sin agregarlos, ¿verdad?
newBike
1
por supuesto. Y en ese caso, solo se confirmarían los archivos enumerados, independientemente de la presencia de cambios por etapas en diferentes archivos.
Stefano Falasca
1
Tengo el mismo problema, pero mi problema también fue sobre la causa del submódulo de los archivos no rastreados. Entonces, en mi subdirectorio, también agrego todos los cambios con git y el problema se ha ido.
elia
1
Ya lo hice git clean -fdy sigo recibiendo esto. Quiero deshacerme de todos los cambios. ¿Qué más debería estar haciendo?
Miel
3
git commit -ano compromete todo, solo los archivos actualizados, no los nuevos ...
Martin
62

Tienes que usar git add para organizarlos, o no se comprometerán. Supongamos que informa a git cuáles son los cambios que desea confirmar.

git add -u :/agrega todos los cambios de archivos modificados a la etapa git add * :/agrega modificados y cualquier archivo nuevo (que no sea gitignore'ed) a la etapa

Dannie
fuente
2
Esta respuesta es clara y concisa en comparación con la anterior, es por eso que me encanta. ;)
oaxacamatt
13

Es otra forma en que Git te dice:

Oye, veo que hiciste algunos cambios, pero ten en cuenta que cuando escribas páginas en mi historial, esos cambios no estarán en estas páginas.

Los cambios en los archivos no se organizan si no los explícitamente git add(y esto tiene sentido).

Entonces, cuando usted git commit, esos cambios no se agregarán ya que no están organizados. Si desea comprometerlos, primero debe organizarlos (es decir git add).

Agis
fuente
2
Pero no cambié el archivo al que hace referencia
Eoin,
1
No entiendo cómo tiene sentido exactamente este comportamiento. Si ya le dije a Git que rastreara un archivo add .cuando configuré el repositorio, y puede detectar que le hice cambios, ¿por qué necesito agregar archivos explícitamente cada vez que me comprometo? Solo para hacer un cambio en un archivo, tengo que hacerlo add, commit y push . La demarcación entre commity empujar tiene sentido para mí, la demarcación entre addy commitparece ridículamente redundante.
Prometeo
1
@Hashim Estoy de acuerdo, realmente no entiendo la lógica.
Herman Toothrot
6

Siga los pasos a continuación:

1- git stash
2- git add.
3- git commit -m "tu mensaje de confirmación"

De mamá
fuente
55
git stash eliminó todos mis cambios, allí fueron 10 horas de trabajo :(
viniciussvl
13
si usó "git stash", puso esos cambios en un "lugar temporal" para recuperarlos simplemente escriba "git stash pop" para obtener su cambio del "lugar temporal"
Cyrus Zei
12
NO USE git stash hasta que lea el comentario de @viniciussvl y Cyrus
mal estado el
1
¿Por qué incluso usaría git stash en este caso?
Tobias Kaufmann
4

Supongo que guardó un nuevo archivo de cambios. (navbar.component.html por ejemplo)

Correr:

ng status
modified:   src/app/components/shared/navbar/navbar.component.html

Si desea cargar esos cambios para ese archivo, debe ejecutar:

git add src/app/components/shared/navbar/navbar.component.html

Y entonces:

git commit src/app/components/shared/navbar/navbar.component.html -m "new navbar changes and fixes"

Y entonces:

git push origin [your branch name, usually "master"]

-------------------------------------------------- -------------

O si desea cargar todos sus cambios (varios / todos los archivos):

git commit -a

Y les aparecerá "Ingrese el mensaje de confirmación para sus cambios".

  • Verás este mensaje si confirmas sin un mensaje (-m)
  • Puede salir de él con dos pasos:
  • 1.a. Escriba un mensaje de varias líneas para avanzar con la confirmación.
  • 1.b. Déjelo en blanco para abortar la confirmación.
    1. Presiona "esc" luego escribe ": wq" y presiona enter para guardar tu elección. ¡Viola!

Y entonces:

git push

Y viola!

David Castro
fuente
2
Lo mismo que dije anteriormente: git commit -ano carga todos los cambios, no incluye los nuevos archivos. Solo confirmará las actualizaciones a los archivos existentes.
Martin
3

Intenta seguir int git bash

1)git add -u :/

2)git commit -m "your commit message"

  1. git push -u origin master

Nota: si no ha inicializado su repositorio.

Ante todo

git init 

y siga los pasos mencionados anteriormente en orden. Esto funciono para mi

Amila Weerasinghe
fuente
Este problema funcionó para mí, en un conflicto de git donde no pude eliminar un archivo de mi repositorio local y comprometerme desde el repositorio local a la rama maestra remota.
Siwoku Adeola
1

significa que no se agregan para comprometerse, tendrá que hacer git add scripts / excel_parser.py y los gustos para organizarlos ... una vez que estén organizados cuando realice el estado de git, se organizarán y git commit los comprometerá

de usted puede git commit -a -m "all checkin" que organizará y confirmará automáticamente todos los archivos en el árbol

LeMoN.xaH
fuente
1

Es posible que vea este error cuando haya agregado un nuevo archivo a su código y ahora intente confirmar el código sin organizarlo (agregarlo).

Para superar esto, primero puede agregar el archivo usando git add ( git add your_file_name.py) y luego confirmando los cambios ( git commit -m "Rename Files" -m "Sample script to rename files as you like")

Waqas Khalid Obeidy
fuente
1

He leído todas las respuestas anteriores y he intentado en la terminal siguiendo los pasos que funcionan bien para actualizar nuevos y cambiar archivos en el maestro.

1) git add. 2) git commit -m "su mensaje" 3) maestro de origen git push

Espero que esto te ayude.

Ksaroz Shrestha
fuente
1

Puede estar en el directorio incorrecto al hacer git add. :-)

Deslumbrar
fuente
-7

Eliminar dir/.../.git

funciona para mi.

pila de aji
fuente
su respuesta necesita información de fondo o una idea de por qué o cómo funcionó para usted.
Joshua K
Como es, la respuesta no es compatible con la pregunta. Por favor considere cambiar o agregar más información.
Francisco María Calisto