{"id":22914468,"url":"https://github.com/hernancerm/intro-git-github-ejercicios","last_synced_at":"2025-05-12T13:43:52.285Z","repository":{"id":113766160,"uuid":"292105480","full_name":"hernancerm/intro-git-github-ejercicios","owner":"hernancerm","description":"Ejercicios para el taller «Introducción a Git y GitHub»","archived":false,"fork":false,"pushed_at":"2020-09-03T02:24:24.000Z","size":194,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-08T22:05:28.355Z","etag":null,"topics":["git","github","taller","version-control"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hernancerm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-01T20:54:32.000Z","updated_at":"2024-03-13T22:02:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"3a077071-e8d4-458d-996c-d876be78155d","html_url":"https://github.com/hernancerm/intro-git-github-ejercicios","commit_stats":null,"previous_names":["hernancerm/intro-git-github-ejercicios"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hernancerm%2Fintro-git-github-ejercicios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hernancerm%2Fintro-git-github-ejercicios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hernancerm%2Fintro-git-github-ejercicios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hernancerm%2Fintro-git-github-ejercicios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hernancerm","download_url":"https://codeload.github.com/hernancerm/intro-git-github-ejercicios/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229665326,"owners_count":18104029,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","github","taller","version-control"],"created_at":"2024-12-14T05:15:10.529Z","updated_at":"2024-12-14T05:15:10.960Z","avatar_url":"https://github.com/hernancerm.png","language":null,"readme":"# Introducción a Git y GitHub: Ejercicios\n\nEste repositorio contiene ejercicios para un taller introductorio a Git y GitHub. El taller cubre los contenidos de [Parte 1: Fundamentos, de Manual Definitivo de Git](https://github.com/HerCerM/ManualDefinitivoGit/blob/master/Parte1_Fundamentos.md).\n\nCada ejercicio que involucra crear un commit contiene una ilustración de cómo debe verse el árbol de commits del repo al final del ejercicio.\n\n**En las ilustraciones, el número dentro de cada commit hace referencia al ejercicio en el que se creó.**\n\n## #1 Configuración inicial\n\n¡**Configura** tu nombre, correo electrónico y editor de texto!\n\nEjemplo de configuración:\n\n```bash\ngit config --global user.name \"Hernán Cervera\"\ngit config --global user.email hernancervera@example.com\ngit config --global core.editor nano\n```\n\nTras la configuración puedes ejecutar `git config --global --list` para ver en la terminal toda tu configuración global.\n\n❓ ¿Cómo se llama y dónde se halla el archivo que almacena la configuración global de Git?\n\n## #2 Primer repositorio local\n\nCrea tu primer repositorio en un directorio llamado `git-workshop`.\n\nCrea los archivos `README.md` y `Hernan.txt`. Actualmente los archivos no requieren tener contenido.\n\nAgrega esos dos archivos al staging area y realiza el **primer commit** del repo.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=100px src=\"./images/2.png\" /\u003e\n\u003c/p\u003e\n\n## #3 Correcciones básicas\n\n¿Tu nombre no es Hernán? Vamos a cambiar el nombre del archivo Hernán.txt para que coincida con el tuyo.\n\nDe tal forma que **reescribas** el commit realizado en el paso anterior, renombra el archivo `Hernan.txt` a `\u003ctu-nombre\u003e.txt`, p. ej. `Pablo.txt`.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=100px src=\"./images/3.png\" /\u003e\n\u003c/p\u003e\n\n## #4 Crear ramas\n\nCrea la rama `yo++` y cámbiate a esa rama. Ahora que estás en la rama `yo++`, escriba una o dos oraciones acerca de ti en el archivo `.txt` con tu nombre.\n\nCuando hayas concluido de redactar, agrega tus cambios al staging area y realiza un commit.\n\nAhora regresa al primer commit del repo usando `git checkout master`. Crea otra rama: `taller-info`, y cámbiate a la rama. En el `README.md`, escribe una o dos oraciones acerca del taller, agrega los cambios al staging area y realiza un commit.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=280px src=\"./images/4.png\" /\u003e\n\u003c/p\u003e\n\n\n| ℹ | Inspecciona el estado actual del repositorio con:\u003cbr\u003e `git log --oneline --all --graph`\u003cbr\u003eObserva que el repo ahora contiene tres commits, uno apuntado por `master`, otro por `taller-info` y el tercero apuntado por `yo++`.\n|---|---|\n\n❓ ¿Desde la rama `taller-info`, el archivo `.txt` con tu nombre tiene contenido o está vacío? ¿Por qué crees que es así?\n\n## #5 Merge fast-forward de ramas\n\nColócate en la rama `master`, e incorpora los cambios de `yo++` a `master` mediante un merge.\n\n## #6 Merge recursive de ramas\n\nAhora, permaneciendo en `master` incorpora los cambios de `taller-info` en `master` mediante un merge.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=350px src=\"./images/6.png\" /\u003e\n\u003c/p\u003e\n\n## #7 Aparición de conflictos al realizar merge\n\nEn `master`, modifica la primera línea del archivo `README.md`, agrega los cambios al staging area y realiza un commit.\n\nAhora colócate en la rama `taller-info`, modifica la primera línea de `README.md` (de manera distinta a como la modificaste previamente), agrega los cambios al staging area y realiza un commit.\n\nRegresa a `master`, e incorpora los cambios de `taller-info` mediante un merge. Git te debería reportar que ha ocurrido un conflicto que requiere ser solucionado manualmente.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=380px src=\"./images/7.png\" /\u003e\n\u003c/p\u003e\n\n❓ ¿Por qué ocurrió un conflicto en este caso?\n\n\n## #8 Resolución de conflictos de merge\n\nEn tu editor de texto preferido, abre el archivo con el conflicto (`README.md`), elimina los marcadores de conflicto y edita el contenido de acuerdo a cómo deseas preservar el archivo.\n\nUna vez terminada la edición en el editor de texto, agrega los cambios al staging area y ejecuta `git merge --continue`.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=550px src=\"./images/8.png\" /\u003e\n\u003c/p\u003e\n\n## #9 Primer repositorio de GitHub\n\nCrea un repositorio público en GitHub, con el nombre de `\u003ctu-nombre\u003e-intro-git`, p. ej. `pablo-intro-git`.\n\n❓ ¿Cómo es GitHub diferente a Git?\n\n## #10 Sube tus cambios a GitHub\n\nEmpuja los cambios de tu rama `master` a GitHub, para que los demás también puedan ver tu repo.\n\n❓ Tras realizar push de `master`, ¿puedes también ver en GitHub tus ramas `taller-info` y `yo++`?\n\n## Recursos adicionales\n\n- ⭐ [Parte 2: Profundizando, Manual Definitivo de Git](https://github.com/HerCerM/ManualDefinitivoGit/blob/master/Parte2_Profundizando.md). Para conocer Git a profundidad, abarcando correcciones avanzadas, los peligros de reescribir la historia pública, ignorar archivos y más, vea la segunda parte del manual.\n- [Flujos de trabajo con Git](https://github.com/HerCerM/ManualDefinitivoGit/blob/master/Parte2_Profundizando.md#flujos-de-trabajo-workflows). Es importante usar las ramas bajo algún estándar que facilite la colaboración, lectura de la historia y reversión de errores.\n- [Cómo redactar mensajes de commit relevantes](https://chris.beams.io/posts/git-commit/). El mensaje de cada commit debe ser conciso y descriptivo acerca de los cambios.\n- [Commits atómicos](https://www.freshconsulting.com/atomic-commits/). Es importante seguir ciertas guías para decidir cuándo realizar un commit.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhernancerm%2Fintro-git-github-ejercicios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhernancerm%2Fintro-git-github-ejercicios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhernancerm%2Fintro-git-github-ejercicios/lists"}