usuario tag password credenciales crear cambiar borrar and git rebase git-rebase

tag - git config--global



¿Cómo prevenir muchos conflictos de git cuando git rebasa muchos de los compromisos? (2)

Afortunadamente, git tiene un mecanismo para tratar exactamente este problema llamado git rerere ; básicamente, si tiene git rerere habilitado, cada vez que resuelva un conflicto, se recordará el hecho de que resolvió el conflicto exacto de una manera particular. Si vuelve a aparecer el mismo conflicto, se utilizará automáticamente la misma resolución. Hay algunos artículos útiles a continuación:

... pero esencialmente solo puedes hacer:

git config --global rerere.enabled 1

... y olvídate, mientras disfrutas de una reorganización / fusión más fácil :)

Historia: en medio de un proyecto, mi colega creó una nueva sucursal del maestro y comenzó a hacer su gran trabajo de re-factorización. Creé mi rama de maestro y comencé a hacer cosas nuevas en la página. Nos comprometemos regularmente, pero solo yo puedo cambiar el código al maestro (porque los cambios de colegas son demasiado pesados ​​y todavía no se pueden implementar desde el maestro). Lamentablemente algunos de nuestros trabajos se basan en los mismos archivos. Así que después de unos días de trabajo cuando finalmente quiso volver a cambiar sus cambios para dominarla , tuvo muchos conflictos con git.

my_branch #---#----#-#-------#----#--#-----#---#----#----# / / / / / / / master *-------*--------------*---*---*--------------*----*----* / / her branch #------#-------#-----------#-----------#------------#

La pregunta 1 es : ¿cómo evitar muchos conflictos de git cuando estamos trabajando en los mismos archivos? (¿o cuál es la mejor práctica en esta situación?)

pero este no es el final de nuestra pregunta , ... para ser absolutamente correcto, ella trató de hacer una rebase del maestro a su sucursal (para que haya cambios comprometidos), por lo que el mapa de confirmación debería tener este aspecto

my_branch #---#----#-#-------#----#--#-----#---#----#----# / / / / / / / master *-------*--------------*---*---*--------------*----*----* / / / / her branch #------#-------#----*------#-----*-----#------------#

Y esto es lo que nos está molestando. Durante estas repeticiones ella estaba arreglando esos conflictos. Pero git no recuerda su decisión sobre la solución de conflictos, por lo que cuando hizo otra reorganización de git de la maestra a su rama , tuvo que corregir los mismos conflictos de git que había solucionado en las versiones anteriores.

La pregunta 2 es : ¿cómo decirle a git que recuerde la corrección de conflicto de git después de la rebase de git desde la rama maestra , así que después de la próxima rebase no tenemos que arreglar los mismos conflictos otra vez?


Asegúrate de estar siempre rebasando usando el --onto .

Para evitar conflictos, utilice ramas de desarrollo flotantes. Cada desarrollador continuamente rebase su rama de desarrollo. Esto es fácil ya que el desarrollador sabe lo que acaba de implementar y no debería tener problemas para resolver conflictos. En lugar de rebase, simplemente combine la versión final (ya se volverá a configurar).