Pregunta

Según el el manual , git dcommit & # 8220; creará una revisión en SVN para cada commit en git. & # 8221; Pero, ¿hay alguna manera de evitar múltiples revisiones de Subversion? Es decir, para que git combine todos los cambios antes de realizar la svn commit?

¿Fue útil?

Solución

Si trabaja en una rama en git, puede git-merge --squash , que hace eso dentro de git. A continuación, puede presionar esa confirmación aplastada a SVN.

Por supuesto, muchos pequeños commits son buenos, entonces ¿por qué querrías aplastarlos?

Otros consejos

El comando git rebase -i puede hacer esto y más. Este comando es extremadamente poderoso, por lo que es bueno hacer amigos con él.

La sintaxis es: git rebase -i <commit ID>. Esto abre su editor de texto, con opciones (e instrucciones) para modificar todas las confirmaciones hasta (sin incluir) la ID dada.

Por ejemplo, para modificar las 5 confirmaciones anteriores, puede hacer esto:

git rebase -i HEAD~5

O si su rama SVN se llama " svn / trunk " ;, entonces esta sintaxis también es buena:

git rebase -i svn/trunk

Entonces aparecerá una ventana del editor de texto. Para aplastar todo, cambie la primera palabra de cada línea después de la primera de & Quot; seleccione & Quot; a " aplastar " (Si esto suena confuso, tendrá más sentido cuando lo vea). Luego guarde y cierre el editor. Luego tendrá la oportunidad de editar el mensaje de confirmación para la confirmación aplastada.

Entre las otras cosas que puede hacer con <=>, están reordenar las confirmaciones, aplastar las confirmaciones de diferentes maneras y eliminar las confirmaciones.

Uso este comando constantemente; es una característica asesina de Git.

Ryan Tomayko escribió un poco sobre git rebase -i, y dijo:

  

& # 8230; [es] un poco como git commit --amend saltó sobre el ácido y sosteniendo una motosierra & # 8211; completamente loco y bastante peligroso, pero capaz de exponer estados mentales completamente nuevos. Aquí puede editar, aplastar, reordenar, separar y anotar confirmaciones existentes de una manera que & # 8217; es más fácil e intuitivo de lo que debería ser.

Tengo una tendencia a comprometerme a menudo en git, pero no necesariamente quiero comprometer cada confirmación a svn, y aplastar todo mi trabajo tiene el mismo sentido. Ahora estoy intentando reordenar y agrupar algunos en unidades de confirmación más lógicas ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top