Introducción a Git: que es y como usarlo

Git es un sistema de control de versiones distribuido de código abierto . Eso es un montón de palabras para definir a Git.

Déjame desglosarlo y explicar la redacción:

  • Sistema de control: esto básicamente significa que Git es un rastreador de contenido. Por lo tanto, Git se puede usar para almacenar contenido; se usa principalmente para almacenar código debido a las otras características que proporciona.
  • Sistema de control de versiones : el código que se almacena en Git sigue cambiando a medida que se agrega más código. Además, muchos desarrolladores pueden agregar código en paralelo. Por lo tanto, el Sistema de control de versiones ayuda a manejar esto al mantener un historial de los cambios que han ocurrido. Además, Git proporciona características como ramas y fusiones, que cubriré más adelante.
  • Sistema de control de versiones distribuido : Git tiene un repositorio remoto que se almacena en un servidor y un repositorio local que se almacena en la computadora de cada desarrollador. Esto significa que el código no solo se almacena en un servidor central, sino que la copia completa del código está presente en todas las computadoras de los desarrolladores. Git es un sistema de control de versiones distribuido ya que el código está presente en la computadora de cada desarrollador. Explicaré el concepto de repositorios locales y remotos más adelante en este artículo.

Por qué se necesita un sistema de control de versiones como Git

Los proyectos de la vida real generalmente tienen varios desarrolladores trabajando en paralelo. Por lo tanto, se necesita un sistema de control de versiones como Git para garantizar que no haya conflictos de código entre los desarrolladores.

Además, los requisitos de dichos proyectos cambian con frecuencia. Entonces, un sistema de control de versiones permite a los desarrolladores revertir y volver a una versión anterior del código.

Finalmente, a veces varios proyectos que se ejecutan en paralelo involucran la misma base de código. En tal caso, el concepto de ramificación en Git es muy importante.

Comencemos a usar Git ahora

En lugar de mencionar todos los conceptos a la vez, explicaré los conceptos de Git a través de un ejemplo para que sea más fácil de seguir.

Descarga git

Este enlace tiene detalles sobre cómo instalar Git en múltiples sistemas operativos:

//git-scm.com/book/en/v2/Getting-Started-Installing-Git

Verifique si Git está instalado usando el siguiente comando en el símbolo del sistema:

git --version

Crea tu repositorio de Git local

En su computadora, cree una carpeta para su proyecto. Llamemos a la carpeta del proyecto simple-git-demo.

Vaya a la carpeta de su proyecto y agregue un repositorio de Git local al proyecto usando los siguientes comandos:

cd simple-git-demo git init

El git initcomando agrega un repositorio de Git local al proyecto.

Agreguemos un código pequeño ahora

Cree un archivo llamado demo.txten la carpeta del proyecto y agregue el siguiente texto en él:

Initial Content

Aquí realizaremos una demostración con solo texto sin formato en lugar de código real, ya que el enfoque principal de este artículo está en Git y no en ningún lenguaje de programación específico.

Puesta en escena y confirmación del código

La confirmación es el proceso en el que el código se agrega al repositorio local . Antes de enviar el código, debe estar en el área de preparación . El área de preparación está ahí para realizar un seguimiento de todos los archivos que se van a confirmar.

Cualquier archivo que no se agregue al área de preparación no será comprometido. Esto le da al desarrollador control sobre qué archivos deben confirmarse.

Puesta en escena

Utilice el siguiente comando para preparar el archivo:

git add demo.txt

En caso de que desee agregar varios archivos, puede usar:

git add file1 file2 file3

Si desea agregar todos los archivos dentro de la carpeta de su proyecto al área de preparación, use el siguiente comando:

git add .

Úselo con cuidado, ya que agrega todos los archivos y carpetas de su proyecto al área de preparación.

Comprometerse

Utilice el siguiente comando para confirmar el archivo:

git commit -m "Initial Commit"

"Compromiso inicial" es el mensaje de compromiso aquí. Ingrese un mensaje de confirmación relevante para indicar qué cambios de código se realizaron en esa confirmación en particular.

Estado de Git y registro de Git

Ahora modifique el demo.txtarchivo y agregue el siguiente fragmento:

Initial Content Adding more Content

Estado

Úselo git statuspara encontrar información sobre qué archivos se han modificado y qué archivos hay en el área de preparación; también muestra otra información, que podemos ignorar por ahora.

Utilice el siguiente comando para ver el estado:

git status

El estado muestra que demo.txtestá modificado y aún no está en el área de preparación.

Ahora agreguemos demo.txtal área de preparación y la consigamos usando los siguientes comandos:

git add demo.txt git commit -m "demo.txt file is modified"

Iniciar sesión

Úselo git logpara imprimir todas las confirmaciones que se han realizado hasta ahora.

El comando utilizado para esto es:

git log

El registro muestra el autor de cada confirmación, la fecha de la confirmación y el mensaje de confirmación.

Ramas

Hasta ahora no hemos creado ninguna rama en Git. De forma predeterminada, las confirmaciones de Git van a la rama maestra .

¿Qué es una rama?

Una rama no es más que un puntero a la última confirmación en el repositorio de Git. Entonces, actualmente nuestra rama maestra es un puntero a la segunda confirmación “demo.txt file is modified”.

¿Por qué se necesitan varias ramas?

Se necesitan múltiples ramas para soportar múltiples desarrollos paralelos. Consulte la imagen a continuación para ver cómo funcionan las ramas.

Inicialmente, la confirmación 1 y la confirmación 2 se realizaron en la rama maestra. Después de confirmar 2, se crea una nueva rama llamada "Prueba", y se agregan las confirmaciones 3 y 4 a la rama de prueba.

Al mismo tiempo, se agregan una confirmación 3 y una confirmación 4 diferentes a la rama maestra. Aquí podemos ver que después del Commit 2, se están realizando dos desarrollos paralelos en 2 ramas separadas.

La rama de prueba y la rama maestra han divergido aquí y tienen un código diferente; el código de la rama de prueba se puede fusionar con la rama maestra utilizando git merge. Esto se cubrirá más adelante.

Crear una nueva sucursal en local

Cree una nueva rama llamada prueba usando el siguiente comando:

git branch test

Este comando crea la testrama.

Todavía estamos en el contexto de la rama maestra. Para cambiar a la test sucursal. use el siguiente comando:

git checkout test

Ahora estamos en la testsucursal.

Puede enumerar todas las ramas en local usando el siguiente comando:

git branch

Hacer algunos compromisos en la nueva rama

Modifique demo.txtagregando el siguiente fragmento:

Initial Content Adding more Content Adding some Content from test Branch

Ahora escenifique y confirme usando los siguientes comandos:

git add demo.txt git commit -m "Test Branch Commit"

Esta confirmación se realizó en la rama de prueba, y ahora la rama de prueba está por delante de la rama maestra por 1 confirmación, ya que la rama de prueba también incluye las 2 confirmaciones de la rama maestra.

Puede verificar el historial de confirmaciones en Test Branch usando:

git log

Fusión

Actualmente, Test Branch está por delante del Master por 1 confirmación. Digamos que ahora queremos que todo el código de la rama de prueba se devuelva a la rama principal. Aquí es donde git mergeresulta muy útil.

Para fusionar el código de la rama de prueba en la rama maestra, siga estos pasos:

Primero regrese a la rama maestra:

git checkout master

Luego ejecuta el mergecomando:

git merge test

Después de ejecutar estos 2 comandos, la combinación debería realizarse correctamente. En este ejemplo, no hay conflictos.

Pero en proyectos reales, habrá conflictos cuando se realice una fusión. Resolver el conflicto es algo que viene con la experiencia, así que a medida que trabajes más con Git podrás aprender a resolver conflictos.

correr git logahora y notará que el maestro también tiene 3 confirmaciones.

El repositorio remoto de Git

Hasta ahora, hemos estado trabajando solo en el repositorio local. Cada desarrollador trabajará en su repositorio local, pero eventualmente, enviarán el código a un repositorio remoto. Una vez que el código está en el repositorio remoto, otros desarrolladores pueden ver y modificar ese código.

GitHub

Aquí usaremos GitHub para el repositorio remoto.

Vaya a //github.com/ y cree una cuenta.

Después de registrarse en la página de inicio de GitHub, haga clic en Iniciar un proyecto para crear un nuevo repositorio de Git. Asigne un nombre al repositorio y haga clic en "Crear repositorio"

Dar el nombre como git-blog-demo.

Esto creará un repositorio remoto en GitHub, y cuando abra el repositorio, se abrirá una página como la siguiente imagen:

La URL del repositorio es la parte resaltada //github.com/aditya-sridhar/git-blog-demo.git

Para apuntar su repositorio local al repositorio remoto, use el siguiente comando:

git remote add origin [repository url]

Git Push

Para enviar todo el código del repositorio local al repositorio remoto, use el siguiente comando:

git push -u origin master

Esto empuja el código de la rama maestra en el repositorio local a la rama maestra en el repositorio remoto.

Comandos adicionales

Git Pull

git pullse utiliza para extraer los últimos cambios del repositorio remoto al repositorio local. Varios desarrolladores actualizan continuamente el código del repositorio remoto, por lo que git pull es necesario:

git pull origin master

Clon de Git

git clonese utiliza para clonar un repositorio remoto existente en su computadora. El comando para esto es:

git clone [repository url]

Felicidades

Ahora que conoce los conceptos básicos de cómo usar Git, ¡siga adelante y explore más!

Pronto publicaré un artículo más sobre conceptos un poco más avanzados de Git. ¡Manténganse al tanto!

Sobre el Autor

Amo la tecnología y sigo los avances tecnológicos. También me gusta ayudar a otros con cualquier conocimiento que tenga en el espacio tecnológico.

No dude en conectarse conmigo en mi cuenta LinkdIn //www.linkedin.com/in/aditya1811/

También puedes seguirme en twitter //twitter.com/adityasridhar18

Mi sitio web: //adityasridhar.com/

Otras publicaciones mías

Cómo usar Git de manera eficiente