Pasar al contenido principal

Git para Controlar Versiones

Git es un sistema de control de versiones distribuido (VCS) que permite que varias personas trabajen en un proyecto al mismo tiempo sin sobrescribir los cambios que hacen los demás. Fue creado por Linus Torvalds, el creador de Linux, en 2005.

¿Por qué se utiliza Git?

Git se usa por varias razones:

Colaboración: Git permite que varios desarrolladores trabajen en el mismo proyecto simultáneamente. Cada desarrollador trabaja en su propia copia local del proyecto y los cambios se pueden compartir entre los desarrolladores a través de un repositorio central. 

Control de versiones: Git realiza un seguimiento de todos los cambios realizados en un proyecto. Esto significa que si se comete un error, es fácil volver a una versión anterior del proyecto. 

Ramas y fusiones: Git permite a los desarrolladores crear ramas para trabajar en nuevas funciones o correcciones sin afectar el proyecto principal. Una vez que se completa el trabajo en una rama, se puede fusionar nuevamente con el proyecto principal. 

¿Cuándo se Utiliza Git?

Git se usa siempre que existe la necesidad de mantener versiones de un proyecto, realizar un seguimiento de los cambios o colaborar. Este suele ser el caso en el desarrollo de software, pero Git también se puede usar para otros tipos de proyectos, como escribir un libro, crear un sitio web o incluso administrar una lista de tareas pendientes.

¿Dónde se Utiliza Git?

Git se usa en una amplia variedad de entornos, desde desarrolladores individuales que trabajan en proyectos personales hasta pequeños equipos que colaboran en un proyecto, grandes organizaciones y proyectos de código abierto con cientos o miles de colaboradores. Se utiliza en la academia, la industria, el gobierno y los aficionados. También es la base de muchos servicios de hospedaje basados en la web, como GitHub, GitLab y Bitbucket, que brindan una interfaz fácil de usar para administrar los repositorios de Git.

Trabajar con un Repositorio de Git

Vamos a revisar el proceso de trabajo con un repositorio de Git, desde la configuración de Git en su máquina local hasta la implementación de cambios en el entorno de producción.

1. Instalar y Configurar

Primero es necesario instalar Git en el entorno de desarrollo local. 

  • Windows: Hay que descargar el instalador de Git para Windows desde la web oficial de Git y ejecutarlo.
  • Mac: Se usa Homebrew escribiendo el commando brew install git en la pantalla.
  • Linux: Se use el gestor de paquetes de la distribución instalada. Para Ubuntu, sería sudo apt-get install git.

Una vez termianda la instalación, hay que configurar el nombre de usuario y correo electrónico de Git usando los siguientes comandos:

git config --global user.name "Nombre de Usuario" git config --global user.email "correo [at] ejemplo.com"

2. Establecer claves SSH para autentificación en GitHub

To interact with GitHub without having to enter your credentials every time, you can set up SSH keys:

  1. Open Terminal.
  2. Generate a new SSH key with the command ssh-keygen -t ed25519 -C "your-email [at] example.com".
  3. When prompted to "Enter a file in which to save the key," press Enter to accept the default location.
  4. At the prompt, type a secure passphrase.
  5. Add your SSH key to the ssh-agent with the command ssh-add ~/.ssh/id_ed25519.
  6. Copy the SSH key to your clipboard with pbcopy < ~/.ssh/id_ed25519.pub.
  7. Go to GitHub, navigate to Settings -> SSH and GPG keys -> New SSH key, paste your key, and click "Add SSH key".

Clonar un Repositorio

Para crear una copia local de un repositorio, se usa el comando git clone seguido de la URL del repositorio que se quiere copiar:

git clone git [at] github.com:usuario/repositorio.git

4. Making Changes and Pushing Them

After making changes to your files, stage them with git add:

git add .

Commit your changes with git commit:

git commit -m "Your descriptive commit message"

Push your changes to the repository with git push:

git push origin master

5. Creating and Switching Between Branches

To create a new branch, use git branch:

git branch new-branch

Switch to your new branch with git checkout:

git checkout new-branch

6. Pulling Changes and Resolving Conflicts

To update your local repository with the latest changes, use git pull:

git pull origin master

If there are merge conflicts, Git will tell you. Open the files with conflicts and look for the <<<<<<, ======, and >>>>>> markers to understand and resolve the conflicts.

7. Pushing a Branch and Submitting a Pull Request

Push your branch to the remote repository:

git push origin new-branch

Then, go to the GitHub page of the original repository and click on "Pull request" -> "New pull request" -> "compare across forks" -> select your fork and branch -> "Create pull request".

8. Merging Pull Requests and Deploying

After reviewing the changes, you can merge the pull request. Click the "Merge pull request" button, then "Confirm merge".

For deployment, the process depends on your production environment. Some services automatically deploy the master branch, while others require manual deployment.

Best Practices

  • Commit often and write clear commit messages.
  • Use branches for new features or bug fixes.
  • Always pull the latest changes before starting to work.
  • Resolve merge conflicts as soon as they occur.
  • Regularly push your branches to the remote repository.

Remember, practice makes perfect. The more you use Git, the more comfortable you'll become with its workflow. Happy coding!