8. Los tres espacios y tres estados Fuente: http://progit.org/book/ch1-3.html (CC-BY-NC-SA 3.0) Modified* Staged Committed
9.
10. El directorio de trabajo es una copia de trabajo de una versión del proyecto.
11. El área de preparación (staging area) es un archivo que almacena información sobre lo que irá en el próximo commit. Antes se le llamaba “el índice”.
30. opcionalmente puede incluir una firma (PGP). En este último caso se denomina un "objeto de etiqueta firmada".
31.
32. base de datos de objetos: almacena un conjunto de objetos ( habitualmente en $GIT_DIR/objects/ ).
33. ref o referencia: cadena de 40 bytes con la representación hexadecimal de un SHA1, o un nombre simbólico ( que se almacena en $GIT_DIR/refs/ ) que denota un objeto particular.
34.
35. padre: un objeto commit contiene una lista (potencialmente vacía) de objetos commit que representan a sus predecesores lógicos en la línea de desarrollo, esto es, sus ancestros.
36. Tipos de objetos de git Fuente: http://progit.org/book/ch3-1.html (CC-BY-NC-SA 3.0)
37. Tipos de objetos de git Fuente: http://progit.org/book/ch3-1.html (CC-BY-NC-SA 3.0)
38.
39.
40.
41.
42.
43.
44.
45. Terminología de git (cont.) Fuente: http://progit.org/book/ch3-1.html (CC-BY-NC-SA 3.0) Estado “inicial” master sigue siendo la rama activa en la copia de trabajo $ git branch testing $ git checkout testing testing pasa a ser la rama activa en la copia de trabajo 1 2 3 4
66. rebase: “limpieza” del historial Estado “inicial” merge tradicional de “master” y “experiment” rebase de “experiment” sobre “master” merge de “master” y “experiment” tras el rebase 1 2 3 4
67. Limpieza del historial IMPORTANTE: No hace rebase de los cambios de una rama si ésta ha sido publicada en otro repositorio.
68.
69. Si hay conflictos, solucionar a mano, y decirle a git qué hemos arreglado:
70. Podemos abortar en todo momento: $ git checkout wip-mdl21-enrol-db-refactor $ git rebase MOODLE_21_STABLE $ editar enrol/database/config.html $ git add enrol/database/config.html enrol/database/enrol.php $ editar xxxx $ git add xxxxx $ git rebase --continue $ git rebase --abort
71.
72. Creación de series de parches: $ git checkout mdl21-enrol-db-refactor $ git diff MOODLE_21_STABLE > mdl21-enrol-db-refactor.diff $ git checkout mdl21-enrol-database-refactor $ git format-patch -o serie-enrol-db MOODLE_21_STABLE $ git format-patch -o -s -10 mdl21-enrol-db
73. Ejemplo de modelo de trabajo Para mantener modificaciones locales de Moodle en Mondragon Unibertsitatea
85. Creación repositorio compartido Enviar rama local al repositorio compartido $ cd /ruta/repositorio/desarrollador/desarrollador-1.git $ git remote add compartido /ruta/repositorio/compartido/compartido.git $ git push compartido mdl21-ldap-refactor
86. Creación repositorio compartido Configurar rama local para hacer pull desde repositorio compartido $ git config branch.mdl21-ldap-refactor.remote compartido $ git config branch.mdl21-ldap-refactor.merge refs/heads/mdl21-ldap-refactor
87. Creación repo nuevo desarrollador Clonar repositorio compartido $ git config --global user.name 'Desarrollador-2' $ git config --global user.email 'desa-2@mondragon.edu' $ cd /ruta/repositorio/desarrollador $ git clone -o compartido /ruta/repositorio/compartido/compartido.git desarrollador-2.git
88. Creación repo nuevo desarrollador Importar ramas estándar (opcional) $ cd desarollador-2.git $ git remote add -t master -t MOODLE_21_STABLE -m master moodle-org git://git.moodle.org/moodle.git $ git fetch moodle-org
89. Creación repo nuevo desarrollador Crear ramas locales de trabajo $ git branch mdl21-ldap-refactor compartido/mdl21-ldap-refactor $ git checkout mdl21-ldap-refactor