Guía Básica De Git (beginners)

Guía Básica De Git (beginners)

ENFOQUE PARA PRINCIPIANTES, en español

⚠ Este texto puede hacerte un pro con git.

🙋🏽‍♂️¿QUIEN SOY?

Hola soy Andrés Babilonia un programador autodidacta y quiero darte mi opinión, mi experiencia cuando conocí y use git por primera vez, esto lo quiero hacer para que tengas una guía o una especie de mapa y no te pierdas, confundas y sobre todo no te frustres en el camino del aprendizaje y dominio de esta herramienta (que es super importante al desarrollar) y no cometas lo errores que yo tuve, también quiero mostrarte como hubieron cosas que no entendí y porque no lo entendí 😑.

[Antes de todo: ¡mi forma de redactar!👀]. Por cierto a mi me gusta escribir con muchos sinónimos, porque dependiendo de diferentes escenarios en la programación a una cosa le llaman de diferentes nombres, por ejemplo a las FUNCIONES que NO retornan un valor se les llama procedimientos, funciones estériles, funciones puras, a veces a los paquetes se les llama librería o módulos etc, etc... si te incomoda o tienes un feedback sobre esto déjamelo saber en los comentarios, aunque si el feedback es sobre el artículo en general o cualquier otro aspecto siéntete libre de hacerlo. así que... sin mas nada que decir: ¡go, go con la guía!.

📰¿PORQUÉ LEER ESTE ARTICULO?

Te preguntaras Porque leer este articulo si hay tanto recurso al alcance, a la distancia de 14 teclas y de 3 clic: la misma pagina oficial de git🤪, libros, YouTube, academias de programación, blogs, guías, otros artículos, muchas paginas web, paginas interactivas, es decir recursos en Internet o en la web (como mas bien dirían los puristas🤭), etc etc... Buenoo pues aquí te dejo mis razones.

  • Cuando lees aprendes más rápido (☞゚ヮ゚)☞, y esto es por las palabras por minutos (ppm), son mas las que entran en tu mente cuando lees, que cuando se compara por lo menos con un vídeo por ejemplo🤷‍♂️.
  • Hay pocos tutoriales "buenos" en español sobre guía básica o introductoria.
  • Luego voy a intentar dar un punto de vista problema-solución... (recuerda esto) y
  • Finalmente dar un enfoque teórico y practico.
  • No solo aprenderás de git, también de aprendizaje, mejorar el pensamiento resolutivo.

✋¡PERO ANTES!

Para comenzar me gustaría conocer el tipo de usuario que eres en git es decir el nivel (principiante, novato, intermedio, avanzado, pro etc). Si eres avanzado o pro, este articulo poco te ofrecerá porque aquí se explicaran los comandos básicos y/o acciones básicas que a lo mejor tú ya conozcas, si conoces medianamente en git este articulo te ayudara a tener un mayor input comprensible o la conocida técnica de aprendizaje repetición espaciada quiero decir reforzar o interiorizar más esos comandos que ya conoces y tal vez conocer algunos nuevos y si eres un principiante en GIT este articulo sera perfecto para ti.

Luego...

🤔¿QUE NECESITAS PARA APRENDER GIT?

Pienso que para aprender git es importante que ya tengas conocimiento de programación, que conozcas sus fundamentos (ciclos, condicionales, operadores (lógicos, aritméticos), funciones, datos, estructuras de datos, programación orientada a objetos, programación funcional, etc) y por su puesto conocer, manejar, todo estos temas con al menos 1 lenguaje de programación ya sea python (super recomendado), javascript, php, ruby, c, java, go, c#, etc, luego sera bueno saber a que área de la programación te quieras dedicar o te estas formando actualmente ya sea web: frontend, backend, cloud, la ciencia de datos, resolución de problemas de ingeniería, seguridad informática, desarrollo móvil, modelación, videojuegos etc, etc, luego sera bueno saber tu genero, orientación sexual, tu raza, estrato económico, religión 😶, ok no, esa cosas no son necesarias... jeje, pero lo que si considero necesario tener en cuenta que tanto tiempo llevas programando, ya sea 1 semana, 2 semanas, 1 mes, 6 meses, 1 año ya veras luego porque de que estas cosas son necesarias.

Voy a colocar unos ejemplos para que notes la importancia de tener cierto tiempo programando, porque de esta manera podrás entender primero que todo la utilidad de git, bueno por lo menos podrás entenderlo desde este enfoque que intento reflejar: problema-solución y el teórico-practico.

  • Primera recomendación para aprender git.

    ¡Ten un poco de experiencia programando!

Es decir ¡no lo empieces a aprender si no tienes mucho tiempo programando!, o si solo has emprendido 1 o 2 proyectos, aunque si ya tienes un proyecto serio en el que llevas tiempo trabajando y estés haciendo cambios constantemente si te sera útil aprender git.

Bueno aunque yo piense que debes tener un poco de experiencia programando voy a dejar incluso unos tips para principiantes y/o primeros pasos en la programación con git.

¿pero porque así con estos conocimientos previos? bueno por lo menos lo que a mi me sucedió era que no le veía utilidad alguna a git a lo que estaba aprendiendo y/o a lo que estaba haciendo, usaba git solo por usarlo, solo porque tome un curso de git antes de tener mas conocimientos de programación y algún lenguaje en especifico, o solo por el echo de que era un requisito para conseguir empleo e incluso lo decidí aprender porque oía que es una herramienta indispensable para todo desarrollador/programador u actividad de programar algo... Así que no estuve aprendiendo git por el echo de que mejora la productividad para "codificar", "codear", "programar" , incluso también mejora la calidad del programa que se escribe y sobre todo !no aprendí git para controlar mi código¡.

🚀¡Empecemos! (a la teoría)

Por cierto en este mundo de la programación se usan muchas, muchas, pero muchaas analogías, así que es muy común ver ejemplos de estas para explicar ciertas cosas de la programación, de echo git usa muchos de estos conceptos traídos de otros campos de la ciencias, como veras cuando se hable de ramas,(¿¡ramas!?), si, ramas y no... no son las ramas de un árbol (jeje*).

¿QUE APRENDERÁS EN ESTE ARTICULO?

  • ¿Que es un repositorio? (¿Un repo- ... que?).
  • Configurando un repositorio.
  • Guardar cambios.
  • Examinar un repositorio.
  • Deshaciendo cambios.
  • Trabajo con ramas.

CAMPO SEMÁNTICO

Finalmente antes de continuar si me gustaría dejar un especie de campo semántico o glosario sin definiciones, para que leas antes de empezar con el tutorial y puedas luego conectar estas palabras:

Crea, borrar un repositorio, crear, actualizar una configuración del repositorio, ignora archivos y carpetas, crear o confirma un cambio, modifica, consulta y elimina un commit (tambien conocido como confirmación), consulta o navega en tu repositorio, registros, trabaja con ramas, trabaja con remoto, sincroniza con la nube, coloca categorías a las ramas, agrega y elimina remotos o modificarlo o actualizarlos, ya sea el nombre de la rama la dirección url etc.. crea, modifica, consulta y elimina etiquetas. crea, modifica, consulta y elimina ramas

🤔¿QUE ES GIT?

Git, git, git!! (lo oyes y lo ves por todos lados ofertas de trabajo, youtube, redes sociales, todos los desarrolladores lo comentan y te lo recomiendan que aprendas y tu tal vez aun no sabes que es) pero ¿que es Git? en palabras breves:

"es un software que te ayuda en el control y versionamiento del programa que tu escribes".

(aunque en lo personal me gusta la palabra gestión en ves de control)

😕¿PORQUE NECESITO APRENDER Y USAR GIT?

Porque necesitas solucionar estos problemas:

  • Tener que hacer un versionamiento manual.
  • Depender de un solo dispositivo para almacenar tu código.
  • Integrar código y desarrollo de otras personas
  • Trabajo en equipo.
  • Modificar algo en tu proyecto y no tener idea del porque ya no funciona.

No tener un versionamiento del código de manera limpia y eficiente es a lo que lleva tener un versionamiento manual que es básicamente sin git estarías copiando y creando el archivo donde tiene un código y luego haces muchos cambios y para tener las 2 versiones guardas el nuevo archivos le cambias el nombre ejemplo:

si estas haciendo un index.html para una pagina web y le agregas muchos div y form así que decides guardar las 2 versiones, y la practica ineficiente seria a darle guardar como el index.html como un nuevo index_v2.html y es aquí el primer problema que soluciona git, no tener que tener 2 archivos con nombres y contenidos distintos para mantener las diferentes versiones en disco duro.

Otro ejemplo, mira este tiktok que son otros ejemplos de este problema de trabajar sin git y entenderás un poco mas, solo a manera de ejemplo (pd: si ves algún otro vídeo similar, manifiestate en los comentarios, lo absorberé y actualizaré a este post y por su puesto te daré tu crédito, y si no encuentras algo similar, pues crea tu el vídeo también y genera contenido nuevo✨💪, para enseñar a los principiantes).

TikTok de Platzi

También puedes ver esto en YouTube Git 1/7 - ¿Porque Usar Git? - Control de Versiones , es un gran vídeo, te lo recomiendo.

Y a modo de comentario otras búsquedas relacionadas si aun no estan conforme o convencido del porque debes usar git prueba con: ¿Que es y porque aprender git?, ¿Porque debo aprender git?, ¿Que es Git y para que sirve?, ¿Por qué nos interesa usar git? entre otros, esto con el fin de que tengas una respuesta clara a la importancia de git y del porque aprenderlo, como tal ayuda a la motivación, un elemento muy importante en el aprendizaje en fin... continuemos.

Y ¿PARA QUE NECESITO APRENDER Y USAR GIT?

Git te va a servir para:

  • Ser mas eficiente.
  • Tener un mejor, eficiente, eficaz control y orden de las versiones de tu código. (tracking a lo largo del tiempo de los cambios.)
  • Tener "lineas de proceso paralela". (Como las fabricas de productos o manufactureras).
  • Trabajar remoto. (cosa que es muy difícil lograr en muchos trabajos y profesiones).
  • Trabajo y desarrollo de software colaborativo.
  • Volver atrás en el tiempo para restablecer los cambios o mirar que fue lo que hiciste.
  • conseguir un empleo.

ACTIVIDADES ENTORNO AL DESARROLLO DE CÓDIGO

En esta sección sera importante entender algunas actividades relacionadas con el desarrollo de "código" o de software, tal como crear nuevo código, refactorizar código, borrar código, actualizar código, modificar, mejorar, incorporar nuevas librerías o dependencias, etc etc.

Todas estas actividades en general me recuerdan a algo básico en la manipulación de datos, y que se le conoce como el CRUD, dado que hacer código básicamente significa eso, creas código, lees código, actualizas código y lo borras.

Sin embargo, ¿En donde almacenas todo ese código? es momento de revisar un concepto importante.

CONCEPTOS IMPORTANTES

¿Que es un repositorio?

Repositorio: Lugar donde se guarda algo. Del lat. repositorium 'armario, alacena'. 1 "Un repositorio es un espacio centralizado donde se almacena, organiza, mantiene y difunde información digital, habitualmente archivos informáticos, que pueden contener trabajos científicos, conjuntos de datos o software" 2 , espacio que se utiliza para almacenar distintas cosas, "En un repositorio, se guarda algo, que puede ser material (físico) o simbólico. En este sentido, actualmente se suele hacer referencia a las bases de datos digitales y a diversos sistemas informáticos como repositorios". 3.

Un resumen para mi es algo como esto: repositorio un lugar 'físico' donde se realiza las siguientes actividades: gestionar(almacenar, organizar, mantener, repartir, difundir etc), de manera centralizado, algo y entiéndase por algo en este ámbito digital y de programación ese algo son: los archivos de texto que contiene el código, y los organiza a través del tiempo y los categoriza con categorías que tú y yo le asignemos.

Hasta ahora "mucho bla bla" mucha teoría ¿No crees?

🚀¡Empecemos! (a la practica)

EMPEZANDO CON GIT

También conocido como la configuración inicial, luego de la instalación, te darás cuenta que el uso de git es por medio de lineas de comandos... es decir instrucciones escritas en texto plano pasadas a la Interfaz de Linea de Comandos de tu sistema operativo o CLI (Command Line Interface), para este punto ya se hace evidente tener experiencia programando o tener practicas de programación, ¿Porque? porque uno de los primeros programas o la forma de desarrollar nuestros primeros programas funcionan así, en el CLI, son programas de consolas. así que avancemos.

INICIA EL REPOSITORIO

"Para configurar git" lo primero que debemos hacer es crear un repositorio, luego añadir nuestro nombre y correo, pero ⚠️ atención no es configurar git como tal, es crear un nuevo traqueo de algún proyecto o empezar un proyecto nuevo, la frase mas adecuada para esto es "Configurar el traqueo del proyecto".

Puedes empezar con el comando en una carpeta vacía o en una carpeta que ya contenga unos cuantos códigos, inicias con el siguiente comando git init, esto crea el repositorio, el baul, el almacén, la caja, el estante, el cuarto, el lugar donde se vana aguardar los códigos, etc, etc, etc. (¿Y tu seguirías usando el repositorio o usarías otros sinónimos?).

inicia un repositorio git init [project name]

Clona un repositorio git clone git_url

Clona un repositorio dentro de un directorio especifico. git clone git_url my_directory

CONFIGURA LOS DATOS DEL REPO

Es decir si vamos a almacenar o a modificar código, debemos saber quien lo hace y "como podemos contactar a esa persona" en pocas palabras insertar un nombre y un email. git config usa este comanda para "configurar git" pero como ya vimos es para el repo como tal.

  • configura tu identidad como desarrollador/trabajador del proyecto:

git config --global user.name "name" git config --global user.email "email"

Por cierto reemplazas "name" por el nombre que tu quieras tu nombre tu apodo etc, igual con "email" ya se a con tu correo hotmail, gmail etc.

  • configura colores:

Con este comando añade color a tu terminal, muy importante para la "facilidad cognitiva". git config --global color.ui auto.

Mira este sheet para mas info en la parte de configuración. quickref.

Como te das cuenta esta es una configuración global, pero puedes hacer una configuración local es decir por carpeta individual o por proyecto(producto) o repositorio(repo), recuerda son sinónimos.

  • configura un repositorio local:

git config --local

Y finalmente

  • comprueba tu configuración: git config --list

Hay también una configuración adicional que la del editor para escribir los commits

  • configuración del editor git config --global core.editor <editor>

En <editor> lo remplazas por la ubicación de tu editor favorito como por ejemplo: C:\Users\<name>\AppData\Local\atom\atom.exe. recuerda remplazar <name> por tu nombre de usuario

INICIAN LOS CAMBIOS

  • Añade código al repo Ahora así empezamos a guardar nuestras cosas nuestro producto.

git add [archivo especifico]

  • Añade una descripción a ese producto

git commit y cuando ejecutes este comando se te abrirá tu editor de código para que escribas el mensaje pero si deseas escribir el mensaje en linea usa la bandera -m el comando queda así git commit -m "Mensaje personalizado"

  • Crea una linea de proceso Es decir crea una rama, con el siguiente comando se crea una rama pero no se cambia inmediatamente a ella.

git branch <name> <name>, es el nombre de la rama que deseas crear. y cambia de inmediato a ella para trabajar

  • Cambia a la rama git checkout -b <name>

Con esto se responde a la pregunta ¿Como creo una rama local?.

Puedes trabajar con ramas que nunca envías al repo en la nube, así como pueden haber ramas importantes en la nube que nunca usas en el repositorio local. Lo importante es que aprendas a manejarlas para trabajar profesionalmente.

  • Publicar una rama local al repositorio remoto: git push origin nombre-de-la-rama

Recuerda que podemos ver gráficamente nuestro entorno y flujo de trabajo local con Git usando el comando git

Pero si me equivoque con el nombre de la rama ¿Cómo renombre una rama? es.stackoverflow.com/questions/276636/c%C3%..

  • Como uno una rama que yo cree con la rama principal?

  • Terminar una linea de proceso ¿Como borro una rama?

git branch -d <NOMBRE_DE_LA_RAMA>

ESTABLECE UNA COPIA DE SEGURIDAD EN LA WEB EN LA NUBE

git remote add

Borra un remoto

git remote delete

BUENAS PRACTICAS DE GIT PARA ...

Las buenas practicas de git, te serán útiles para nombrar tus ramas, realizar commits, trabajo colaborativo, cabe resaltar que las buenas practicas lo construye la comunidad y la experiencia de usar git y de desarrollar.

PARA INICIACIÓN DEL REPO Y CONFIGURACIÓN

PARA COMMITS

Para los commits sabemos que hay que proporcionar un mensaje, una buena practica, nunca lo dejes vació el mensaje. segunda practica que recomiendo, lo vi en un usuario de github como tenia sus en sus proyectos commit y me gusto, esta persona utilizo una lista enumerada, también se pueden usar viñetas. tercera buena practica que recomiendo intenta utilizar verbos, y la forma de redactar depende de ti, si deseas hacerlo en tercera persona o en primera persona, los verbos que uses que sean como los de un CRUD (Create, Read, Update, Delete), en una base de datos, por ejemplo cree esta característica y esta función, borre esto, actualice aquello, corregí esto, modifique aquello etc.

"It is a common practice to use the first line of the commit message as a subject line, similar to an email. The rest of the log message is considered the body and used to communicate details of the commit change set. Note that many developers also like to use the present tense in their commit messages. This makes them read more like actions on the repository, which makes many of the history-rewriting operations more intuitive." (MIERDA DE DONDE SALIO ESTO?)

PARA RAMAS

La verdad no he visto mucho, pero puedes empezar siempre por crear mas de una rama, le puedes llamar a la rama principal main antes se usaba master peeroo ya no se usa así , git siempre creara por defecto esta rama y para cambiar el nombre de esta rama usa este comando aquí debe ir comando de git

git branch

git2 mejorado.png

FIN

Finalmente estos son los comandos básicos que deberías practicar, interiorizar, aprenderte, "grabar en el casset", hacerlo de forma automática en fin memorizarte

🙏 Gracias por leer la lectura siempre es la mejor manera de aprender (solo por el tema de eficiencia).

💬 Déjame tu feedback, sugerencias, comentarios, opiniones, experiencia, dudas, aportes de links, del contenido etc.

Comparte este contenido! Ya sea en los grupos de facebook, grupos de Discord, Whatsapp, Telegram, en tu twiter, seguro habrá algún principiante o intermedio que necesita aprender esta herramienta, otros a subir de nivel, pasar de principiante a intermedio, reforzar sus conocimientos etc.

FUENTES:

SHEETS

  • GitSheet (sencilla, pero practica)
  • quickref (mas completa, mas subtitulo, diseño minimalista)
  • Overapi (tiene comandos muy raros para mi o sea que no los conozco, esta un poco mal explicado).
  • training.github (y como el resto de sheets, tiene cosas que el resto no tiene y tiene de forma rara la agrupación de los comandos"

DIAGRAMAS / INFOGRAFÍAS

  • overapi (muy interesante esta gráfica, algo simple.)
    • blogspot(de las mejores imágenes que he visto, tiene buenos títulos y subtitulos)
  • edteam (me hace falta pero esta es buena)

DOCUMENTACIÓN OFICIAL DE GIT

TUTORIALES

  • blacklog(No lo he visto la verdad)
  • w3schools (es un clásico del internet, bueno para iniciar).
  • Bitbucket (De bitbucket, muy bueno de 0 a experto).

TUTORIALES INTERACTIVOS

ILUSTRACIONES GIT

  • Aquí lastimosamente no hay nada, pero por la Internet rondan unos buenos dibujos. bueno la mía, la de este blog jajaja.