Git: a punto de bifurcar mi propio proyecto

Soy un usuario de git muy básico; Básicamente, solo uso los commands git add -a (para agregar files después de modificarlos) y luego git commit -m "what I did" y luego git push (para enviarlo a mi server).

Ahora quiero hacer algo muy drástico para mi código base. Algo que posiblemente no funcione, y tendré que volver a donde estaba.

¿Cómo puedo hacer eso? ¿Creo una "twig"? O una label? ¿O algo mas?

Estoy detrás de un set de commands simples con explicaciones simples. también para luego regresar al HEAD original, o para luego (tal vez) fusionar los cambios en HEAD (que no habrá cambiado)

Merc.

Necesitas una sucursal

 git checkout -b nameofyournewbranch 

Esto verifica su twig actual (el nombre pnetworkingeterminado es 'maestro') como una nueva twig con el nombre que especifique. Cualquier compromiso que hagas ahora estará en la nueva twig. Si quieres dejarlo y regresar a donde estabas:

 git checkout master 

para volver a tu nueva sucursal:

 git checkout nameofyournewbranch 

si desea fusionar su sucursal en su base de código principal:

 git checkout master git merge --no-ff nameofyourbranch 

–no-ff significa que verá que se ramifica fuera de master y luego se ramifica de nuevo, lo que le permite realizar un seguimiento de las funciones separadas.

Para ver lo que estás haciendo, obtén un visor de tree de fuente git de algún tipo, por ejemplo, tree fuente , gitk, etc. Es mucho más fácil entender qué hacen las twigs si puedes verlas visualmente.

Actualización: para verificar lo que sucedería antes de la fusión, crea una twig temporal en el mismo lugar que el maestro y fusiona allí:

 git checkout -b tempbranchname master git merge --no-ff nameofyourbranch 

Si te gusta, únelo para dominar y será como si lo hubieras hecho en el maestro en primer lugar:

 git checkout master git merge tempbranchname 

Si no lo hace, simplemente elimínelo:

 git checkout master git branch -D tempbranchname 

-D significa eliminar incluso si no se fusionó con el maestro. Use -d normalmente, ya que recibirá una advertencia si trata de eliminar cosas no fusionadas que perdería.

Puedes hacer lo siguiente:
1) Crear nueva twig. Y luego combínalo con tu twig principal.

 git branch newbranch git checkout newbranch ... git checkout master git merge newbranch 

2) Puede comprometerse con su sucursal principal y luego deshacer sus últimas confirmaciones.

Pero creo que la mejor manera es una ramificación.

Puedes leer este artículo para aprender más sobre la ramificación:
Un exitoso model de ramificación de Git

Aquí tienes un par de hojas de testing útiles: una en HTML y otra en PDF

Los commands básicos son

Para mostrar todas las twigs existentes

 git branch 

Para crear una nueva sucursal

 git branch BRANCHNAME 

Para cambiar la copy de trabajo a otra twig

 git checkout BRANCHNAME 

Para fusionar otra twig en la actual

 git merge BRANCHNAME