remota - Git: Etapa en Commit, ¿cuál es el flujo de trabajo correcto?
git push example (2)
Acabo de crear una gran pieza de código que deseo confirmar en varios commits por separado.
Así que puedo representar partes relevantes, comprometerme, escenificar, comprometerme, ... y así sucesivamente hasta que tenga todos mis cambios comprometidos.
La parte que falta es cómo puedo probar si dividí la confirmación de forma correcta.
Es decir, si la parte que está en el área de preparación al menos compila?
Para hacer eso, de alguna manera debo poner mi árbol de trabajo en sincronía con el índice (área de preparación) sin perder los cambios que se cometerán más adelante.
¿Cuál es la forma correcta de hacerlo?
¿Cuál es la forma más rápida de hacerlo?
Actualizar:
¿Cómo hacerlo con magos?
Aquí hay una forma mágica que uso:
- crea tu índice para el primer commit con magit "u" o "s" para organizar o eliminar hunk / files / region. (Esto se puede hacer con git gui también). Una vez que su índice esté listo para comprometerse:
- comprometerse con "c", escriba su mensaje de confirmación, Ctrl-C Ctrl-C para confirmar.
- esconder con "z" seguido de << Entrar >>, esto esconderá todo su cambio. Para recuperar sus cambios, puede usar "A" mientras su puntero está en la entrada correcta.
Realice sus pruebas para verificar si su compromiso es bueno. Si se debe realizar algún cambio, vuelva a hacer lo mismo que antes, pero presione Ctrl-C Ctrl-A antes de comprometerse mientras está en la pantalla del mensaje de confirmación. Esto modificará (completará) su último compromiso en lugar de crear uno nuevo.
Tenga en cuenta que si luego determina que algún código debe modificar una confirmación antes de la última vez que lo hizo, debe confirmar el código por sí mismo (con un resumen temporal) y doblarlo en la confirmación correcta gracias a "L "para acceder a la pantalla de registro, apunte el puntero antes de confirmar que desea aplastar y presione" E "para iniciar una sesión" git rebase -i ". Reordene las confirmaciones para que el resumen temporal sea para "corregir" la confirmación del objetivo. Salga de la memoria intermedia y TADA. Todo está hecho.
Podrías hacerlo con:
$ git branch task1 # first set of commit to do
Una rama intermedia puede ser útil para registrar algunas confirmaciones intermedias cuando lentamente agrega algo de contenido al índice.
Luego intente una sesión interactiva para agregar lo que desea:
$ git add -i
Agregue cualquier momento en que quiera verificar lo que ha agregado:
$ git stash --keep-index
Si se compila, git commit
su trabajo actual, y si la task1
aún no se ha completado, git stash pop
para restaurar el árbol de trabajo completo y repita.
Una vez que la task1
está completamente horneada, puede recortar todas las task1
'' task1
'' y fusionar todo el trabajo en el maestro:
$ git checkout master
$ git merge task1
$ git branch -D task1 # no need for that intermediate branch
Si desea conservar el historial de algunas task1
significativas de task1
, puede volver a establecer la base de la primera task1
en la parte superior del maestro, antes de fusionar el master
en la task1
( task1
rápido)
Finalmente, si su escondite aún contiene algún trabajo en progreso, repita todo el proceso para task2
.