Comenzando a usar Git


¿Qué es Git?

Git es un sistema de control de versiones distribuido. Git fue diseñado y desarrollado por Linus Torvalds para el desarrollo del kernel de Linux. Git proporciona soporte para el desarrollo distribuido no lineal, lo que permite que múltiples colaboradores trabajen en un proyecto simultáneamente. Git es el sistema de gestión de código fuente y control de versiones distribuido más popular. Este tutorial lo guiará a través de los conceptos básicos para comenzar a utilizar Git, desde la instalación del software hasta el uso de comandos básicos en repositorios locales y remotos (repos).

Configura Git

Después de instalar Git, configúrelo por primera vez con git config, una herramienta integrada que obtiene y establece variables de configuración. Estas variables de configuración se encuentran en tres lugares diferentes en un sistema GNU / Linux:

  • /etc/gitconfig – almacena la información de configuración para todos los usuarios del sistema y sus respectivos repositorios.
  • ~/.gitconfig – almacena archivos de configuración específicos del usuario en el sistema.
  • .git/config – este es el archivo de configuración de su repositorio de trabajo actual.

Para un sistema Windows, el archivo .gitconfig esta localizado en el directorio $HOME del perfil del usuario. La ruta completa es C:\Document and Settings\$USER oC:\Users\$USER

git config --list

Si su nombre y correo electrónico no aparecen en la salida, use los siguientes comandos para configurarlos manualmente, reemplazando examplename y user@example.com:

git config --global user.name examplename
git config --global user.email user@example.com

Configure su editor de texto predeterminado, reemplazando el editor-name con el nombre de editor que desee:

git config --global core.editor editor-name

El output de git config --listdebe mostrar eco la información que ingresó:

$ git config --list
user.name=exampleuser
user.email=user@email.com
core.editor=editor-name

Usa Git con un repositorio local

Un repositorio, o repo, es una colección de archivos, carpetas y el historial de sus cambios. Los cambios se rastrean a través de commits, que son como snapshots de un archivo en varios puntos del historial del archivo. Estas commits no son automáticas, debe realizar manualmente un commit después de cada serie de cambios de archivo. Los commits le permiten referirse o volver a un lugar en la línea de tiempo del archivo si hay bugs o errores en su código.

Si tiene un proyecto nuevo o existente y desea comenzar a usar Git para realizar un seguimiento de sus cambios, ejecute git init desde el directorio del proyecto existente:

git init

git init crea un nuevo subdirectorio .git en el directorio actual. Aquí es donde Git almacena tus configuraciones. El comando git add le dice a Git que agregue un archivo al repositorio y rastree los cambios de ese archivo:

git add filename

Una vez que haya agregado el archivo, realice un commit y deje un mensaje en el mismo commit. Los mensajes del commit sirven como un recordatorio de los cambios realizados en un archivo:

git commit -m "Este es el primer commit del proyecto y este mensaje sirve para documentar lo que se hizo en otras versiones"

Nota

Es una buena práctica proporcionar mensajes de commit / confirmación claros y descriptivos para cada etapa de commit, ya que esto ayuda a los colaboradores a comprender lo que abarca una confirmación.

Puede haber archivos o carpetas en el directorio de su proyecto que no desea incluir en su repositorio Git. Puedes incluir estos archivos en un archivo .gitignore, y Git los ignorará. Un archivo .gitignore de muestra podría tener el siguiente aspecto:

.gitignore
1
2
3
.DS_Store
*.zip
__doNotInclude__/

Comandos básicos de Git

Esta tabla enumera los comandos básicos, una descripción y un ejemplo del comando en uso:

CommandDescriptionExample
git addAgrega un archivo al repositorio.git add filename
git rmRemueve un archivo del repositorio.git rm filename
git mvMueva o cambie el nombre de un archivo, directorio o symlinkgit mv file_from file_to
git branchListar todas las ramas locales y remotas.git branch branchname
git commitCommit  todos los objetos en escena. Opcionalmente, puede agregar un mensaje con la marca -m.git commit -m "updates"
git pullDescarga todos los cambios de el repositorio remoto y mezclalos / merge en un archivo especifico del repo.git pull repo refspec
git pushPublicar los cambios al repositorio remoto.git push repo

Ramas / Branches

Las ramas / branches se utilizan para editar archivos sin alterar las partes de trabajo de un proyecto. La rama principal se denomina normalmente master y generalmente se reserva para código de trabajo limpio. Al realizar cambios en su código, es habitual crear una nueva rama / branch y asignarle un nombre después de que se solucione el problema o se implemente la función. Debido a que Git realiza un seguimiento de los cambios en los archivos, puede saltar de una rama a otra sin sobrescribir o interferir con otras ramas en el repositorio.

Las opciones básicas usadas con el comando git branch son:

OptionDescription
-rLista de las ramas remotas
-aMostrar tanto ramas locales como remotas
-mRenombras una rama antigua
-dBorrar una rama
-r -dBorrar una rama remota

Ejemplo de uso

Considere una aplicación con una sola rama master. El autor de la aplicación quiere desarrollar una nueva función de búsqueda. Agregarían una nueva rama de características:

git branch new-search-feature

Luego, cambiarían a esa rama usando el comando checkout:

git checkout new-search-feature

Ahora pueden desarrollar y confirmar sus cambios de forma segura en esta rama de características sin alterar el código de trabajo de la rama maestra (master). En cualquier momento podrían volver a la rama master:

git checkout master

Un atajo para crear una rama y cambiar a esa rama es usar el indicador -b con el comando checkout:

git checkout -b new-search-feature

Una vez que se finaliza la nueva función de búsqueda, el autor de la aplicación puede combinar la rama new-search-feature en la rama principal:

git checkout master
git merge new-search-feature

Ahora la rama master tiene al nueva caracteristica de búsqueda.

Usa Git con un repositorio remoto

GitHubGitLab, y Bitbucket ofrecen formas de almacenar los repositorios de Git de forma remota y facilitar la colaboración. Muchos de estos servicios también incluyen una serie de otras características que son vitales para el desarrollo de contenido, incluidas las pull requests, los procesos de integración continua / entrega continua (CI / CD), wikis y webhooks. Si prefieres usar una solución auto hospedada, GitLab and Gogs ofrecen versiones locales y gratuitas de su software que se pueden administrar fácilmente en un servidor.

Esta sección proporciona información básica sobre la navegación de repositorios remotos de Git.

Para copiar todos los archivos de un repositorio remoto a su sistema local, use git clone seguido de la URL del repositorio remoto:

git clone https://github.com/linode/docs.git

Por lo general, puede encontrar la URL de un repositorio remoto haciendo clic en los botones Clonar o Descargar de la interfaz de usuario de un repositorio remoto.

Para verificar el estado de los archivos dentro de la rama actual de su repositorio, use status:

git status

La salida del comando de status le indicará si se ha modificado algún archivo rastreado.

Use remote para ver que servidores remotos estan configurados:

git remote

El comando remote mostrará los nombres cortos de sus repositorios remotos. Si su repositorio fue clonado, verá un repositorio llamado origin. El origen del nombre predeterminado proviene del repositorio clonado. Para ver más información sobre los repositorios remotos, use el comando:

git remote -v

Comandos de repositorio remoto de Git

A continuación se muestran algunos comandos básicos para trabajar con repositorios remotos:

COMANDODESCRIPCION
git remote add [remote-name] [url]Agrega un nuevo repositorio remoto
git fetch [repository [refspec]]Reúna todos los datos de un proyecto remoto que aún no tiene.
git pull
git push [remote-name] [branch-name]Mueva sus datos desde su sucursal a su servidor.
git remote show [remote-name]Muestra información sobre el remote que especificaste.
git remote rename [old-name] [new-name]Renombra un remoto
git remote rm [name]Remuve el remoto que especificaste.

Ejemplos de uso.

Continuando con el ejemplo presentado en la sección anterior, digamos que alguien quiere agregar una funcionalidad a una aplicación en un repositorio remoto. El primer paso sería dar fork a ese repositorio. Esta función, como la clonación, suele estar disponible en la interfaz de usuario del software de repositorio remoto. Forking crea un repositorio remoto, que es una copia del repositorio bifurcado, en la propia cuenta del usuario. Desde su usuario, el usuario clonaría la bifurcación localmente utilizando el comando de clonación descrito anteriormente.

git clone https://github.com/username/Spoon-Knife.git

Una vez que se clona el repositorio, el usuario creará una rama para la nueva función utilizando el comando branch o checkout -b

git checkout -b new-special-feature

Una vez realizada la rama, el usuario realizará las actualizaciones o cambios necesarios en el código base y los confirmará.

git commit -m "Una nueva caracteristica agregada"

Con la confirmación por etapas, el usuario enviaría sus cambios a su fork del repositorio remoto:

git push origin new-special-feature

El resultado del comando push es que ahora existe la nueva rama de características en el fork del usuario. Para contribuir con esos cambios al repositorio inicial, conocido como el repositorio anterior, el usuario ahora debe enviar una Pull Request (PR). Un PR es una característica que la mayoría del software de repositorio remoto tiene que le permite al usuario contribuir de manera segura un commit, o una serie de compromisos, a un repositorio ascendente. Esto se logra al navegar a través de la interfaz de usuario a la página de Pull Requests, seleccionando la rama master del repositorio ascendente como destino y seleccionando la rama de la característica del repositorio de origen como la fuente. Se creará una solicitud de extracción y el código se revisará antes de fusionarse en la rama maestra del repositorio ascendente.

Si bien la creación de PR es un estándar saludable dentro de la comunidad de desarrollo, no es la única forma de contribuir a un repositorio remoto. Puede simplemente enviar sus confirmaciones directamente al repositorio anterior:

git push my-repo new-special-feature

La desventaja de este enfoque es que no hay ninguna opción para mantener los compromisos presionados para su revisión. Sin embargo, si usted es el único contribuyente a un proyecto, obviamente no habrá nadie para revisar sus cambios, por lo que no es necesario crear una bifurcación y contribuir con relaciones públicas.

Si está colaborando con otro desarrollador, es necesario poder recuperar su trabajo. Para hacerlo, ejecute el comando pull:

git checkout new-special-feature
git pull

Git tomará el nuevo código de la rama del repositorio remoto elegido y lo combinará con su rama local.


Like it? Share with your friends!

0 Comments