Usar Git / Github correctamente cuando se trabaja en equipo

Ejemplo:

  • Cloné el repository de Github, creé una nueva twig y comencé a trabajar en una característica.

  • Mi compañero de trabajo clona el mismo repository exacto de Github, crea su propia sucursal en su máquina local (git checkout -b mylocalbranch), y trabaja en su propia function.

  • Mi compañero de trabajo termina su function antes que yo y la lleva a producción y vuelve a Github.

  • Termino mi function 30 minutos después y quiero impulsar mi trabajo sin causar ningún conflicto.

¿Cuál es la mejor manera de llevar mi trabajo a la producción y regresar a Github sin causar ningún conflicto?

Digamos que su compañero de trabajo fusionó su código en la twig de production .

Ahora, la twig de la yourfeature que creó a partir de la production anterior está obsoleta un poco y tiene pocos compromisos por su parte.

Lo que tienes que hacer ahora es:

  • cambiar a la twig de production
  • Tírelo (para que tenga los cambios más recientes, incluidos los cambios de su compañero de trabajo)
  • vaya a su twig yourfeature
  • Rebase su sucursal con production : Esto reproducirá sus compromisos de esta sucursal con respecto a la última producción.
  • Si surge algún conflicto: se deben a los mismos cambios de línea realizados por su compañero de trabajo donde también está actualizando algo.

Lea más sobre cómo volver a basar aquí

Bueno, puedes verificar la twig en la que deseas fusionarte,

 git checkout master 

luego fusiona tu código

 git merge [current_branch] 

Siempre existe la posibilidad de conflictos y en ese caso simplemente tiene que tratarlos y resolverlos.

Este artículo debería ayudar: http://git-scm.com/book/es/Git-Branching-Basic-Branching-and-Merging

Esta publicación de blog es muy útil:

Conclusiones

Evite el flujo de trabajo de fusión, especialmente si tiene muchos committers o tiene committers less entrenados.

Comprenda cómo la naturaleza distribuida de git cambia el juego.

Active el sistema receive.denyNonFastForwards en su repository autorizado

De: http://randyfay.com/content/avoiding-git-disasters-gory-story . Los comentarios y la publicación son de oro.

La forma rápida es, asegúrate de que tus cambios estén comprometidos, haz los cambios que hizo tu compañero de equipo usando git pull , fusiona la twig en la tuya con git merge branchname , git merge branchname tu twig en master por git checkout master git merge yourbranchname , luego git push los cambios volver al repository remoto.

Otros enlaces relevantes:

Fusión entre horquillas en GitHub

Fusionar cambios desde el repository remoto de github a su repository local