====== Git: Control de código fuente para programadores ====== Notas del curso **Git: Control de código fuente para programadores** del Clúster TIC de Galicia. * Horas: 30 * Fecha Inicio: 13/02/2025 * Fecha Fin: 21/03/2025 * Empresa proveedora: campusMVP ===== Objetivos ===== Esta formación está dirigida a **programadores en cualquier lenguaje o plataforma** que necesitan aprender con garantías a sacar partido a Git para control de código fuente. El curso parte de cero en cuanto a Git y va avanzando progresivamente para que obtengas unos fundamentos sólidos y no sólo que trabajes con Git “de oído”. Aprenderás todos los conceptos importantes, así como el trabajo en el día a día, buenas prácticas y la resolución de problemas. Además, verás cómo utilizar las herramientas y servicios más importantes que complementan a Git ===== Temario ===== * Módulo 1: [[informatica:programacion:cursos:git_control_codigo_fuente_programadores:introduccion_git_control_codigo_fuente|Introducción a Git y al código fuente]]. * Módulo 2: [[informatica:programacion:cursos:git_control_codigo_fuente_programadores:git_basico_linea_comandos|Git básico - Línea de comandos]] * Módulo 3: [[informatica:programacion:cursos:git_control_codigo_fuente_programadores:branching_merging|Branching y Merging]] * Módulo 4: [[informatica:programacion:cursos:git_control_codigo_fuente_programadores:herramientas_visuales|Herramientas Visuales]] * Módulo 5: [[informatica:programacion:cursos:git_control_codigo_fuente_programadores:rebashing_stagshing_tagging|Rebasing, Stashing y Tagging]] * Módulo 6: [[informatica:programacion:cursos:git_control_codigo_fuente_programadores:herramientas_facilitar_trabajo_git|Herramientas para facilitar el trabajo con Git]] * Módulo 7: [[informatica:programacion:cursos:git_control_codigo_fuente_programadores:conceptos_avanzados|Conceptos avanzados]] * Módulo 8: [[informatica:programacion:cursos:git_control_codigo_fuente_programadores:servicios_alojamiento_repositorios|Servicios para alojamiento de repositorios]] ===== Test de conocimientos ===== ==== Conceptos básicos de Git ==== **¿Con qué comando de Git podríamos obtener las diferencias que hay entre dos ramas?** * ''git-diff'' (**Correcto**) * ''git-search'' * ''git-log %%--detail%%'' * ''git-log %%--diff%%'' **¿Cuáles son las principales diferencias entre ''git-pull'' y ''git-fetch''?** * El comando ''git-fetch'' sólo actualiza tu referencia de las ramas remotas (**Correcto**) * El comando ''git-pull'' sube todos los cambios desde el repo local al remoto * El comando ''git-fetch'' actualiza las ramas locales * El comando ''git-pull'' es un ''git-fetch'' seguido de un ''git-merge'' (**Correcto**) **¿Cuál es el comando de Git para unir dos ramas?** * ''git-merge'' (**Correcto**) * ''git-rebase'' * ''git-commit'' * ''git-branch'' **¿Con Git al ser un DVCS sino tienes Internet dejas de tener acceso al repositorio?** * Verdadero * Falso (**Correcto**) **¿Con qué comando crearías un repositorio en Git?** * ''git-clone'' * ''git-new'' * ''git-init'' (**Correcto**) * ''git-commit'' ==== Evaluación final ==== **En las GUIs que hemos visto, si haces click derecho sobre un //stash// puedes eliminarlo, ¿cuál es la opción del comando ''git-stash'' para eliminarlo a través de consola?** * ''delete'' * ''drop'' (**Correcto**) * ''remove'' **¿Cuáles de los tres siguientes servicios permite instalarlo de forma local?** * GitLab (**Correcto**) * GitHub * Bitbucket **Con la opción ''-l'' del comando ''git-tag'' podemos filtrar el listado de todos los tags de un repositorio, ¿verdadero o falso?** * Verdadero (**Correcto**) * Falso **¿Cómo se llaman las ramas en desarrollo de Gitflow?** * ''features'' (**Correcto**) * ''releases'' * ''master'' **¿Cuál es la opción del comando ''git-log'' que te muestra el histórico con un gráfico?** * ''%%--%%decorate'' * ''%%--%%all'' * ''%%--%%graph'' (**Correcto**) * ''%%--%%online'' **¿Cómo se puede crear un stash en Git sin usar la GUI?** * ''git stash -a "mensaje"'' * ''git stash save -a "mensaje"'' (**Correcto**) * ''git stash --new "mensaje"'' * ''git stash -m "mensaje"'' **¿En el proceso de Gitflow cuáles son las diferencias entre la rama master y la rama develop? (Escoge las respuestas que creas correctas)** * La rama master contiene código en producción (**Correcto**) * De la rama develop salen los hotfixes * La rama develop contiene código que será el que vaya a producción a posteriori (**Correcto**) * La rama develop contiene las ramas features donde se desarrolla el nuevo código (**Correcto**) **¿Con Git al ser un DVCS sino tienes Internet dejas de tener acceso al repositorio?** * Verdadero * Falso (**Correcto**) **En muchas de las GUI que has visto si queremos cambiar de rama basta con hacer doble-clic sobre la rama a la que queremos movernos, ¿qué comando de Git obtiene el mismo resultado?** * ''git-branch'' * ''git-pull'' * ''git-move'' * ''git-checkout'' (**Correcto**) **Una vez resuelto un conflicto ¿con qué comando de Git podemos continuar con el proceso de merge?** * ''git commit -a'' (**Correcto**) * ''git merge -a'' * ''git merge %%--%%resolved'' * ''git merge %%--%%abort'' ===== Prácticas ===== ===== Recursos ===== * [[https://www.jasoft.org/Blog/post/Github-Como-contribuir-en-un-proyecto-Open-Source|Github: Cómo contribuir en un proyecto Open Source]] * [[https://www.jasoft.org/Blog/post/Como-actualizar-un-fork-de-un-proyecto-en-GitHub|Cómo actualizar un fork de un proyecto en GitHub]] * [[https://git-scm.com/book/en/v2|Pro Git]]: libro gratuito (en inglés). * [[https://www.campusmvp.es/recursos/post/los-10-mandamientos-del-control-de-codigo-fuente.aspx|Los 10 mandamientos del control de código fuente]] * [[https://www.campusmvp.es/recursos/post/git-como-evitar-problemas-con-cambios-de-linea-al-trabajar-en-equipo.aspx|Git: Cómo evitar problemas con cambios de línea al trabajar en equipo]]