Si he realizado varios conjuntos de cambios en un archivo grande, ¿es posible dividirlos en commit separados usando git?¿Rompe varios cambios en commits separados con git?
Respuesta
Quiere git add --patch
, que le permitirá seleccionar qué cambios de escenario.
¿Por qué el voto a favor? git add -i es overkill si lo único que quieres es seleccionar hunks, ya que la primera opción que elijas del menú -i es 'p' (o 5), así que bien podrías haber saltado directamente hacia ella con - parche. –
¿De verdad, otro voto negativo sin explicación? Si cree que hay algún problema con 'git add --patch', tenga la cortesía de dar una explicación de por qué. –
Creo que los votos a favor (¡no los míos!) Son de gente que ya se ha comprometido, donde esta respuesta no funcionará. La pregunta no dice si los cambios están comprometidos o no. – mikemaccana
Sí, puede usar git add -i
para seleccionar qué etapas desea configurar para cada confirmación. Puede obtener documentación ejecutando git help add
y desplazándose a "Modo interactivo".
Williams answer es perfectamente válido. Pero a veces es más fácil hacer las cosas a mano. Por ejemplo, si accidentalmente actualizó una biblioteca de terceros con muchos archivos antes de confirmar los cambios que realizó anteriormente. Con git add -p
(igual que --patch
) necesitaría recorrer todos estos archivos. Así que en este caso es mucho más conveniente que acaba de organizar el archivo que desea comprometerse y hacer una segunda comprometerse con todos los otros cambios:
> git add /path/to/your/file.txt
> git commit -m "my commit message"
[master a0c5ea6] my commit message
1 file changed, 2 insertions(+), 1 deletion(-)
> git add --all
> git commit -m "updated library xyz"
En realidad,' git add -p' le permite seleccionar el archivo particular en la línea de comando, y dentro de la sesión interactiva puede saltar a un trozo particular usando 'g', o busca un trozo que coincida con una expresión regular usando'/'. El punto de 'add -p' es seleccionar hunks de un archivo, pero esta solución propuesta requiere agregar el archivo completo, que no es lo que el OP quiere. –
- 1. Git-archive old commits
- 2. Git merge commits
- 3. El rendimiento de Git con Big Commits contra commits pequeños
- 4. Git cambio entre commits
- 5. ¿Cómo puedo omitir commits en git?
- 6. Git lost commits
- 7. Eliminar commits grandes de git
- 8. Git - eliminar commits con conjunto de cambios vacío usando filter-branch
- 9. ¿Cómo maneja git commits en una combinación?
- 10. Eliminar el antiguo git commits
- 11. git push, no push all local commits
- 12. git encontrar commits duplicados (por id-parche)
- 13. Git-Tfs: ¿Un conjunto de cambios TFS por Git Commit?
- 14. recibiendo la etiqueta de commits 'en git
- 15. Perdí mi compromiso en GIT. ¿Puedes eliminar accidentalmente commits?
- 16. Eliminando información privada del antiguo Git commits
- 17. Git push all commits como confirmación única con mensaje personalizado
- 18. Mostrar diff entre commits
- 19. Git - Almacenar sucursales en directorios locales separados
- 20. Git: Ignorando ciertos commits al presionar
- 21. Git branches & commits history after merge
- 22. git rebase interactive: squash merge commits together
- 23. Colapsando un grupo de commits en uno en Git
- 24. git: día a día de cambios
- 25. Etiquetado consistente en múltiples proyectos en repositorios Git separados
- 26. Mueve varios commits de una rama a otra?
- 27. Clonar varios proyectos SVN con git-svn
- 28. git perdido cambios ocultos
- 29. ¿Cómo puedo avanzar y retroceder entre commits en git?
- 30. Combinando múltiples commits antes de presionar en Git
duplicado posible de [¿Cómo dividir una confirmación en confirmaciones más pequeños con Git ?] (http://stackoverflow.com/questions/2118042/how-to-split-a-commit-int-smaller-commits-with-git). –
Además, no está claro si los cambios ya se han confirmado o no. Si ya se han confirmado en varios commits, 'rebase --interactive' es el camino a seguir. Si no, 'git add --patch' es una de las opciones que debes considerar. –