{"id":27483358,"url":"https://github.com/hectorpulido/guia-como-usar-git","last_synced_at":"2025-04-16T15:46:14.270Z","repository":{"id":111766705,"uuid":"230384207","full_name":"HectorPulido/Guia-como-usar-Git","owner":"HectorPulido","description":"Guia rapida y practica sobre como usar git ","archived":false,"fork":false,"pushed_at":"2023-12-13T04:57:20.000Z","size":16,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-12-13T05:34:58.127Z","etag":null,"topics":["como-instalar-git","git","tutorial"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=rJRq7U95o8s","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HectorPulido.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-12-27T06:13:16.000Z","updated_at":"2022-09-21T23:48:41.000Z","dependencies_parsed_at":"2023-12-13T05:31:48.863Z","dependency_job_id":"cbc3908e-083a-4cb0-93b8-b4b07559757c","html_url":"https://github.com/HectorPulido/Guia-como-usar-Git","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HectorPulido%2FGuia-como-usar-Git","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HectorPulido%2FGuia-como-usar-Git/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HectorPulido%2FGuia-como-usar-Git/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HectorPulido%2FGuia-como-usar-Git/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HectorPulido","download_url":"https://codeload.github.com/HectorPulido/Guia-como-usar-Git/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249256510,"owners_count":21238988,"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":["como-instalar-git","git","tutorial"],"created_at":"2025-04-16T15:46:13.569Z","updated_at":"2025-04-16T15:46:14.245Z","avatar_url":"https://github.com/HectorPulido.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# COMO USAR GIT: TUTORIAL COMPLETO\n[![Video sobre como funciona git](https://img.youtube.com/vi/rJRq7U95o8s/0.jpg)](https://www.youtube.com/watch?v=rJRq7U95o8s)\n\nLos programadores tenemos una relación de amor odio con git, sabemos que es superútil, pero no sabemos sacar todo el provecho que la herramienta ofrece, así que si nos obligan solemos usarlo de la forma más insulsa y aburrida posible...\n\n## GLOSARIO\n* \u003cb\u003eORIGIN:\u003c/b\u003e La nube, en nuestro caso el repositorio en github, también puede estar en gitlab o bitbucket.\n* \u003cb\u003eCOMMIT:\u003c/b\u003e Punto en el tiempo al cual podemos retroceder de manera sencilla.\n* \u003cb\u003eBRANCH:\u003c/b\u003e o rama, espacio seguro en donde podemos escribir codigo sin afectar a la rama principal.\n* \u003cb\u003eMASTER:\u003c/b\u003e Rama o branch principal, usualmente empleada para releases a producción.\n\n## COMO INSTALAR GIT\n\n### WINDOWS\nDescargar e instalar del lugar oficial.\u003c/br\u003e\nhttps://git-scm.com/download/win \u003c/br\u003e\nLuego de eso solo utilizar los comandos de git desde el bash de git, desde cmd o desde powershell.\n\n### MAC\nEn caso de tener Homebrew instalado simplemente utilizar el comando  \u003c/br\u003e\n\"\u003e\u003ebrew install git\"\nDe lo contrario descargar de la página oficial. \u003c/br\u003e\nhttps://brew.sh/ \u003c/br\u003e\n### LINUX\n#### CENTOS / REDHAT\n\"\u003e\u003esudo yum install git\"\n#### UBUNTU\n\"\u003e\u003esudo apt-get install git\"\n#### FEDORA\n\"\u003e\u003esudo yum install git-core\"\n\n## COMANDOS BASICOS\n* \u003cb\u003e\"\u003e\u003egit status\"\u003c/b\u003e nos da información útil sobre el repositorio, cambios que hemos hecho, cambios que se van a subir al commit, y nombre de la rama.\n* \u003cb\u003e\"\u003e\u003egit log\"\u003c/b\u003e nos muestran todos los commits que se han hecho junto con su código único, la fecha y el autor.\n* \u003cb\u003e\"\u003e\u003egit pull\"\u003c/b\u003e descarga de la nube todos los datos de la rama actual, además descarga todas las ramas.\n## FLUJO NORMAL\n1. Primero usar el comando \n\"\u003e\u003egit add \u003c...\u003e\" Donde los \u003c...\u003e Representan los archivos a subir, podemos saber que archivos son usando el \"\u003e\u003egit status\"\n2. Crear el commit con el comando \n\"\u003e\u003egit commit -m '\u003c...\u003e'\" Donde los \u003c...\u003e representan el nombre del commit. \n3. Subir el commit con el comando \n\"\u003e\u003egit push origin \u003c...\u003e\" Donde los \u003c...\u003e representan el nombre de la rama donde estás, inicialmente master. \n\n## RAMAS\n\nSe trata de un espacio seguro en donde podemos escribir código sin afectar a la rama principal. Git tiene forma de Arbol, siendo la rama principal o tronco la \u003cb\u003erama master\u003c/b\u003e cada rama puede ser ramificada en otras ramas que luego pueden juntarse. \n\nCada rama tiene los mismos commits que su rama padre hasta el momento de generarla, luego de eso los commits no se comparten entre ramas a menos que se haga un merge o un pull request.\n* Para ver nuestras ramas usamos el comando\n\"\u003e\u003egit branch\", esto nos muestra que ramas hemos utilizado y en que rama estamos.\n* Recordad siempre usar pull request para mezclar las ramas.\n* Recordad siempre hacer pull antes de crear una rama y crear siempre la rama desde master, no desde otra rama a menos que sepas lo que estás haciendo.\n* Las ramas contienen todos los commits de la rama desde la que fue creada hasta el momento de su creacion.\n\n\n### Generar ramas y movernos entre ellas\n* Para generar una rama podemos emplear el commando.\n\"\u003e\u003egit branch \u003c...\u003e\" Donde los  \u003c...\u003e son el nombre de la rama\n* Para movernos, usamos el comando.\n\"\u003e\u003egit checkout \u003c...\u003e\" donde los \u003c...\u003e otra vez, son el nombre de la rama.\n* \u003cb\u003eTIP:\u003c/b\u003e para crear una rama y de inmediato moverte a ella en un solo comando puedes utilizar el comando de \"\u003e\u003egit checkout -b '\u003c...\u003e'\" donde \u003c...\u003e es el nombre de la rama.\n\n## CONFLICTOS\nSi dos desarrolladores modifican a la vez un mismo archivo en las mismas líneas, al momento de juntar los cambios git no va a saber que hacer y dará paso a que los desarrolladores sean quienes solucionen el dichoso conflicto.\n\n### Razones para qué sé de un conflicto\n* Al momento de juntar dos ramas en donde el mismo archivo y las mismas líneas hayan sido modificadas.\n* Si se hace un \"\u003e\u003egit stash\" con un archivo modificado y luego se modifica el archivo, al momento de hacer \"\u003e\u003egit stash pop\" este archivo dará lugar a un conflicto.\n* Si un desarrollador está modificando un archivo en una rama y esa misma rama tiene un commit que no ha sido descargada por el desarrollador al momento de hacer \"push\" habrá un conflicto en caso de que ese archivo haya sido modificado en los commits no descargados. \n### Resolver conflictos\n1. Si el conflicto sale de manera espontánea saltar al paso #7\n2. Pasarse a master con el comando \"\u003e\u003egit checkout master\"\n3. Descargar la master \"\u003e\u003egit pull origin master\"\n4. Volver a la rama del conflicto con \"\u003e\u003egit checkout ...\"\n5. Hacer merge de la rama normal con master \"\u003e\u003egit merge master\"\n6. Al revisar el resultado del merge veremos algo como \"CONFLICT (content): Merge conflict in...\"\n7. Al momento de revisar el archivo veremos algo como esto:\n```\n\u003c\u003c\u003c\u003c\u003c\u003c\u003c Updated upstream\nhola mundo 456 \n=======\nhola mundo 123\n\u003e\u003e\u003e\u003e\u003e\u003e\u003e Stashed changes\n```\nSe ve claramente la separación entre los dos cambios. \u003c/br\u003e\n8. Para solucionar el conflicto solo hay que deshacerse de los separadores, obviamente estoy hay que hacerlo de manera que el código funcione correctamente, **esta es la parte difícil de la resolución de conflictos y hay que hacerla con mucho tacto**.\u003c/br\u003e\n9. Luego de solucionar el conflicto hacer el **flujo normal** ósea git add, commit, push.\u003c/br\u003e\n10. Por último hacer de nuevo el pull request, el merge o lo que se estaba realizando.\n\n## TODO: \n* ~~Tema de conflictos~~\n* ~~Como instalar git~~\n* ~~Solución de erratas~~\n* ~~Video de YouTube~~\n* Traduccion al ingles\n\n\u003chr\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ch3 align=\"center\"\u003eLet's connect 😋\u003c/h3\u003e\n\u003c/div\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://www.linkedin.com/in/hector-pulido-17547369/\" target=\"blank\"\u003e\n\u003cimg align=\"center\" width=\"30px\" alt=\"Hector's LinkedIn\" src=\"https://www.vectorlogo.zone/logos/linkedin/linkedin-icon.svg\"/\u003e\u003c/a\u003e \u0026nbsp; \u0026nbsp;\n\u003ca href=\"https://twitter.com/Hector_Pulido_\" target=\"blank\"\u003e\n\u003cimg align=\"center\" width=\"30px\" alt=\"Hector's Twitter\" src=\"https://www.vectorlogo.zone/logos/twitter/twitter-official.svg\"/\u003e\u003c/a\u003e \u0026nbsp; \u0026nbsp;\n\u003ca href=\"https://www.twitch.tv/hector_pulido_\" target=\"blank\"\u003e\n\u003cimg align=\"center\" width=\"30px\" alt=\"Hector's Twitch\" src=\"https://www.vectorlogo.zone/logos/twitch/twitch-icon.svg\"/\u003e\u003c/a\u003e \u0026nbsp; \u0026nbsp;\n\u003ca href=\"https://www.youtube.com/channel/UCS_iMeH0P0nsIDPvBaJckOw\" target=\"blank\"\u003e\n\u003cimg align=\"center\" width=\"30px\" alt=\"Hector's Youtube\" src=\"https://www.vectorlogo.zone/logos/youtube/youtube-icon.svg\"/\u003e\u003c/a\u003e \u0026nbsp; \u0026nbsp;\n\u003ca href=\"https://pequesoft.net/\" target=\"blank\"\u003e\n\u003cimg align=\"center\" width=\"30px\" alt=\"Pequesoft website\" src=\"https://github.com/HectorPulido/HectorPulido/blob/master/img/pequesoft-favicon.png?raw=true\"/\u003e\u003c/a\u003e \u0026nbsp; \u0026nbsp;\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhectorpulido%2Fguia-como-usar-git","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhectorpulido%2Fguia-como-usar-git","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhectorpulido%2Fguia-como-usar-git/lists"}