Guía completa de Git para principiantes

Controlador de versiones

Git es un sistema de control de versiones utilizado para gestionar el código fuente de proyectos de desarrollo.

Sus principales funciones son:

# Las dos funciones principales de git:
    - Combinación de código en colaboración entre múltiples desarrolladores
    - Gestión de versiones con capacidad para revertir a versiones anteriores

Software de gestión de versiones

Existan principalmente dos tipos: Git y SVN (un sistema antiguo).

Diferencias clave:

-svn: Sistema Centralizado (CVCS). Si el servidor se ve comprometido o falla irreparablemente, esto afectará la productividad del equipo
-git: Sistema Distribuido (DVCS). En caso de fallo del servidor, puede utilizarse otro cliente como servidor alternativo sin interrumpir el desarrollo

Flujo de trabajo en Git

Uso de Git

Instalación de Git

# 1. Descargar la versión adecuada: https://git-scm.com/download
# 2. Instalar Git:
# Seguir los pasos del instalador
# Al hacer clic derecho en cualquier ubicación, debería aparecer:
    - Git Bash Here  # Para operar con comandos de terminal
    - Git GUI Here   # Interfaz gráfica, generalmente no se utiliza

Tres áreas de Git

Área de trabajo, área de staging y repositorio, tal como se muestra:

Área de trabajo     Área de staging              Repositorio<br></br>
Ubicación de código   Código modificado va aquí    Historial de versiones
Editar o eliminar código   Solo después de ser añadido a staging    Debe venir desde staging

Comandos de Git

Inicialización

-Inicializar: git init nombre_carpeta  # Gestionar carpeta específica
-Inicializar: git init   # Gestionar toda la ruta actual

# Al inicializar un repositorio, dentro de una carpeta que deseas gestionar, se crea una carpeta oculta .git, indicando que esa carpeta está bajo control de Git

Verificar estado del repositorio

# Verificar estado del repositorio
git status
# Texto rojo indica archivos no gestionados
# Texto verde indica archivos agregados al área de staging

De área de trabajo a área de staging

git add archivo.txt    # Agregar archivo.txt al área de staging
git add .              # Agregar todos los archivos de la ruta actual al área de staging

Configurar información del usuario

Antes de enviar datos al repositorio, es necesario configurar la información del usuario; de lo contrario, no se podrá hacer el envío.

# Configurar información global del usuario
git config --global user.name 'yessir'  
git config --global user.email '983410683@qq.com'  
# Esta información se guarda en el archivo C:\Users\usuario\.gitconfig y aplica a todos los repositorios


# Configurar información local del usuario -- solo aplica al repositorio actual
git config user.name 'lqz'
git config user.email '2333@qq.com'

# Nota: Dentro de la carpeta .git del repositorio actual, puedes ver esta configuración en el archivo config

De área de staging al repositorio

Es obligatorio tener la información del usuario configurada antes de enviar datos al repositorio.

git commit -m 'comentario: he añadido a'  # Enviar todo lo del área de staging al repositorio. Se requiere la información del autor<br></br># Es obligatorio incluir un comentario al hacer commit, de lo contrario no se permite el envío

Ver información de versiones en el repositorio

git log      # Mostrar registro de cambios
git reflog   # Mostrar registro detallado, más entradas pero menos información por línea

Revertir cambios: (dos métodos)

1. git checkout . (menos usado)

2. git reset --hard número_de_version (más usado)

git reset --hard número_de_version  # Restaurar una versión específica del repositorio a la zona de trabajo

Agregar nuevo archivo a la gestión de versiones
Crear b, agregar línea en a
git checkout .  # Volver al estado del último commit, a estará vacío, b no será gestionado por Git, por tanto mantendrá su estado original

Ejemplo:

-Agregar línea en a.py
-git status   # Archivo a.py en color rojo, no ha sido añadido al área de staging
-git add .    # Añadir al área de staging
-git commit -m 'comentario' # Enviar al repositorio 
-Eliminar a.py  
-git status   # Archivo a.py en color rojo
-git add .    # Añadir al área de staging
-git commit -m 'comentario' # Enviar al repositorio 
# Total de tres commits (crear a, modificar a, eliminar a)
-git log   # Ver registro de commits
-git reset --hard b9b7824  # Volver a cierta versión
-git reset --hard 5de4a6b

Ignorar archivos

# Algunos archivos no deben ser gestionados por Git, por eso se define un archivo de exclusión

# Crear un archivo .gitignore en la raíz del proyecto, al mismo nivel que .git. No se debe ignorar este archivo

Contenido del archivo:<br></br># El carácter # es comentario, no tiene efecto
Nombre de archivo o carpeta: ignora archivos o carpetas con ese nombre en cualquier directorio
/Ruta/archivo: ignora solo en la raíz del repositorio

Ejemplos:
a.txt: Todos los archivos a.txt en todo el proyecto serán ignorados

/a.txt: Solo el archivo a.txt en la raíz del proyecto será ignorado

/b/a.txt: Solo el archivo a.txt dentro de la carpeta b en la raíz será ignorado

*x*: Cualquier archivo con una x en su nombre será ignorado (* representa cero o más caracteres)

Las carpetas vacías no se suben (no son detectables), pero paquetes sí pueden subirse (si contienen un archivo init vacío)

/dist: Ignorar carpeta dist en la raíz del proyecto

*.py: Ignorar todos los archivos con extensión .py

*.log*: Ignorar archivos cuyo nombre contenga log

Operaciones con ramas en Git

-Ver ramas: git branch   # Muestra todas las ramas, las que están activas aparecen en verde

-Crear rama: git branch nombre_rama

-Crear y cambiar: git checkout -b nombre_rama  # Puede dividirse en dos pasos

-Eliminar rama: git branch -d nombre_rama  # No se puede eliminar la rama actual

-Cambiar de rama: git checkout nombre_rama

-Fusionar ramas: git merge nombre_rama  # Fusionar rama dev en master: cambiar a master y ejecutar git merge dev
# Para fusionar rama1 en rama2, debe estar en rama1. Lo opuesto también aplica<br></br>git merge dev  # master absorbió dev

Ejemplo:

Crear ramas:
git branch dev
git branch bug
git branch env

Cambiar de rama:
git checkout dev

Eliminar rama:
git branch -d env  # No se puede eliminar la rama activa

Fusionar ramas:
git merge bug  # dev absorbió bug

Crear y cambiar de rama:
git checkout -b sdiao<br></br><br></br>Cambiar a la rama sdiao<br></br>git checkout sdiao<br></br>En la rama sdiao crear archivo a.txt, luego agregarlo al área de staging y hacer commit<br></br>git add .<br></br>git commit -m 'a.txt añadido en rama sdiao'<br></br>Al cambiar a la rama dev, el archivo a.txt no se verá, igual pasa con otras ramas, solo sdiao lo muestra<br></br>git checkout dev<br></br><br></br>

Eliminar archivos del repositorio remoto

En GitHub, solo se pueden eliminar repositorios completos, no archivos individuales, por lo que se debe usar un comando para solucionarlo.

Primero, abrir la terminal en la carpeta master del proyecto y ejecutar:

$ git pull origin master             # Descargar el proyecto del repositorio remoto
$ dir                                # Ver qué carpetas existen
$ git rm -r --cached carpeta         # Eliminar carpeta del seguimiento de Git
$ git commit -m 'Eliminada carpeta'  # Confirmar cambio con mensaje

Etiquetas: Git Version Control distributed versioning branch management repository

Publicado el 8-21 07:39