Git: una introducción para principiantes

    El desarrollo de software está intrínsecamente lleno de desafíos. Esto va desde diseñar la arquitectura de su software, mantenerlo, corregir errores, implementar y la lista continúa. Al comenzar, pensaría que la parte fácil sería compartir su código con otros. Después de todo, son solo archivos de texto, ¿verdad? Puede que esto no sea demasiado difícil con programas extremadamente simples que tienen un solo desarrollador, pero los problemas se agravan a medida que aumenta el número de colaboradores, así como el tamaño del proyecto.

    Por ejemplo, ¿cómo se comparten las actualizaciones de un código base con otro desarrollador que trabaja en el mismo proyecto? ¿Enviaría constantemente por correo electrónico archivos modificados de un lado a otro? ¿Qué pasa si está trabajando en los mismos archivos simultáneamente? ¿Cómo detecta y fusiona estos cambios?

    Esta fue exactamente la razón control de versiones Se crearon sistemas (VCS) para permitir la colaboración, el intercambio y la fusión simultáneos de cambios en un proyecto.

    Si bien existen varios sistemas de control de versiones, como CVS, SVN, Mercurial, etc., Git ha surgido como el sistema más popular con diferencia.

    Git, un control de versiones distribuido, fue lanzado en 2005 y creado por Linus Torvalds, quien también es el creador de Linux. Es tan popular que está en el centro de varias empresas multimillonarias, como GitHub, GitLab y BitBucket de Atlassian, que alojan repositorios Git públicos y privados.

    Dado que Git es tan popular entre los desarrolladores, es una habilidad esencial para aprender. En este artículo, cubriremos los conceptos básicos de qué es Git, cómo funciona y dónde puede encontrar recursos para obtener más información.

    ¿Qué es Git?

    Varios VCS tienen diferentes estructuras. Tome SVN, por ejemplo, que es un repositorio centralizado, lo que significa que tiene un repositorio «maestro». Esto difiere de Git, que está descentralizado y no tiene maestro. En la práctica, un solo repositorio alojado generalmente se comparte entre un equipo, pero los proyectos se pueden bifurcar más fácilmente y no tener ninguna dependencia del repositorio original.

    Esta es una gran razón de la popularidad de Git, no está intrínsecamente limitado por su arquitectura y tiene algunas características (como ramificación y fusión) que son «ciudadanos de primera clase», en lugar de ser un pensamiento posterior como en otros VCS .

    Por lo general, interactúa con Git a través de la herramienta de línea de comandos, con el nombre apropiado git. Aunque, ahora hay bastantes herramientas GUI (es decir, Escritorio de GitHub, SourceTreey GitKraken) que le ayuda a utilizar algunas de las funciones más comunes, como la confirmación, la ramificación y la fusión. Dado que Git es un poco complejo de usar, algunos principiantes optan por comenzar con estas herramientas GUI. Y aunque pueden ser extremadamente útiles y ayudarlo a ser productivo, le recomiendo que al menos se sienta cómodo con la versión de línea de comandos para profundizar su comprensión.

    Git funciona rastreando qué cambió en cada archivo de un proyecto, quién hizo ese cambio y por qué. Internamente, esto se hace en una estructura de gráfico y cada nueva confirmación crea un nuevo node en el gráfico.

    Una rama en Git crea un nuevo node fuera del árbol principal (el node amarillo en la imagen a continuación) en el que puede realizar cualquier cambio que desee sin afectar el código base principal. De esta manera, otros desarrolladores pueden continuar trabajando en sus nuevas funciones en ramas separadas mientras usted trabaja en la suya, todo sin interrumpir el progreso de los demás.

    Una vez que haya terminado las actualizaciones en su rama, puede fusionarlas nuevamente en la rama maestra. Una vez hecho esto, todos los que trabajen en el mismo repositorio introducirán los cambios en sus sistemas locales. Al realizar cambios de esta manera, evita interrumpir la rama principal.

    Conceptos básicos de Git

    Git puede ser complicado, por eso probablemente estás aquí. Por eso, solo cubriremos algunas de las características principales de la herramienta de línea de comandos aquí y brindaremos recursos si desea profundizar en cada función.

    En primer lugar, para empezar, querrá instalar git en su sistema. La mayoría de las distribuciones de Mac y Linux vienen con Git preinstalado, pero en caso de que la suya no lo haga, así es como se hace:

    Mac OS

    Instale Git con el Herramientas de línea de comandos de Xcode o usando el instalador de este enlace.

    Distros basadas en Debian

    $ sudo apt install git-all
    

    Distros basadas en RPM

    $ sudo dnf install git-all
    

    Windows

    Descarga el instalador para Git para Windows y siga las instrucciones.

    Una vez instalado, puede crear un nuevo repositorio ingresando al directorio de su proyecto (un proyecto Node.js en nuestro ejemplo) y usando el init mando:

    $ cd my-project
    $ git init
    

    Esto inicializará Git, pero antes de que se rastree algo, debe agregar explícitamente los archivos de su proyecto al repositorio:

    $ git add package.json config.json
    

    Git facilita un poco este proceso y permite que los comodines seleccionen archivos de forma masiva:

    $ git add src/*.js
    

    Ahora, nuestros archivos aún no están comprometidos con Git, solo están preparados. Podemos ver archivos por etapas usando el status mando:

    $ git status
    On branch master
    
    Initial commit
    
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
    
        new file:   config.json
        new file:   package.json
        new file:   src/index.js
        new file:   src/api.js
    

    Ahora estamos listos para enviar nuestros cambios al repositorio usando el commit mando:

    $ git commit -am "Initial commit"
    

    los -a La bandera le dice a Git que confirme todos los archivos preparados, y la -m flag vamos a agregar un mensaje de confirmación a través de la línea de comando. Si se omite, se abrirá su editor de texto predeterminado, lo que le permitirá ingresar el mensaje allí. Este mensaje se utiliza para describir los cambios que se realizaron.

    Desde aquí puede hacer muchas cosas, como, por ejemplo, etiquetar la confirmación con un número de versión, crear una rama para trabajar en una nueva función o volver a una confirmación anterior si cometió un error.

    Para completar nuestro breve ejemplo, enviemos nuestros cambios a un repositorio remoto, permitiendo que otros desarrolladores obtengan los cambios. Para que esto funcione, primero debemos crear un repositorio en la cuenta de GitHub, que luego podemos usar para enviar a:

    $ git remote add origin https://github.com/scottwrobinson/my-project.git
    $ git push origin master
    

    El primer comando anterior le dice a Git la ubicación de nuestro repositorio remoto, que hemos llamado «origen». En el segundo comando, le decimos a Git que envíe nuestro código desde la rama maestra a nuestro servidor de origen. Dependiendo de cómo haya configurado su cuenta de GitHub, es posible que deba ingresar una contraseña o especificar una clave SSH.

    Si bien es útil ver los conceptos básicos del uso de una herramienta complicada como Git, todavía hay mucho que aprender y este ejemplo solo rasca la superficie de lo que Git es capaz de hacer. Muchas de estas características están fuera del alcance de este artículo, por lo que proporcionamos una serie de recursos que profundizan en más detalles sobre temas de Git más específicos.

    Recursos para aprender más

    • Crea un repositorio de Git
    • Clonar un repositorio
    • Crear una nueva sucursal
    • Verificar una sucursal remota
    • Agregar todos los archivos a un repositorio
    • Fusionar rama en maestro
    • Eliminar sucursal de forma local y remota
    • Empuje la sucursal local y realice un seguimiento

    Para obtener aún más artículos sobre el tema, consulte todos nuestros artículos de Git.

    .

    Rate this post
    Etiquetas:

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *