Operaciones básicas de Git

El trabajo de Git es crear y guardar instantáneas de tu proyecto y compararlas con instantáneas posteriores.

Este capítulo presentará los comandos relacionados con la creación y confirmación de instantáneas de tu proyecto.

Los 6 comandos más utilizados de Git son:git clone、git push、git add 、git commit、git checkout、git pull, más adelante los presentaremos en detalle.

Explicación:

  • workspace: área de trabajo
  • staging area: área de preparación / área de caché
  • local repository: repositorio de versiones o repositorio local
  • remote repository: repositorio remoto

Un flujo de operación simple:

$ git init    
$ git add .    
$ git commit  
  • git init: inicializa el repositorio.
  • git add . : agrega archivos al área de preparación.
  • git commit: agrega el contenido del área de preparación al repositorio.

Comandos para crear un repositorio

La siguiente tabla enumera los comandos de Git para crear repositorios:

Comando Descripción
git init Inicializar un repositorio
git clone Copia un repositorio remoto, es decir, descarga un proyecto.

Confirmación y modificación

El trabajo de Git es crear y guardar instantáneas de tu proyecto y compararlas con instantáneas posteriores.

La siguiente tabla enumera los comandos para crear y confirmar instantáneas de tu proyecto:

Comando Descripción
git add Agregar archivos al área de preparación
git status Ver el estado actual del repositorio; muestra los archivos modificados.
git diff Comparar las diferencias de los archivos, es decir, las diferencias entre el área de preparación y el área de trabajo.
git difftool Usar una herramienta de diferencias externa para ver y comparar los cambios de los archivos.
git range-diff Comparar las diferencias entre dos rangos de confirmaciones.
git commit Confirmar el área de preparación en el repositorio local.
git reset Revertir la versión.
git rm Eliminar archivos del área de preparación y del área de trabajo.
git mv Mover o renombrar archivos del área de trabajo.
git notes Agregar un comentario.
git checkout Cambiar de rama.
git switch (Git 2.23 版本引入) Cambiar de rama de forma más clara.
git restore (Git 2.23 版本引入) Restaurar o deshacer los cambios de un archivo.
git show Mostrar información detallada de los objetos de Git.

Registro de confirmaciones

Comando Descripción
git log Ver el historial de confirmaciones
git blame <file> Ver el historial de modificaciones de un archivo específico en forma de lista
git shortlog Generar un resumen conciso del registro de confirmaciones
git describe Generar una cadena legible que describe la confirmación actual basándose en el sistema de etiquetas de Git.

Operaciones remotas

Comando Descripción
git remote Operaciones con repositorios remotos
git fetch Obtener el repositorio desde el remoto
git pull Descargar el código remoto y fusionarlo
git push Subir el código remoto y fusionarlo
git submodule Administrar proyectos que contienen otros repositorios de Git

Estado de los archivos en Git

El estado de los archivos en Git se divide en tres tipos: directorio de trabajo (Working Directory), área de preparación (Staging Area) y repositorio local (Local Repository). Entender estos conceptos y su interacción es clave para dominar Git.

Directorio de trabajo (Working Directory)

El directorio de trabajo son los archivos del proyecto que ves en tu computadora local. Es el lugar donde realmente manipulas los archivos, incluyendo ver, editar, eliminar y crear archivos. Todos los cambios en los archivos ocurren primero en el directorio de trabajo.

Los archivos en el directorio de trabajo pueden tener los siguientes estados:

  • Sin seguimiento (Untracked): archivos recién creados que no han sido registrados por Git.
  • Modificado (Modified): archivos que ya son rastreados por Git han sido modificados, pero estos cambios aún no se han confirmado en el registro de Git.

Área de preparación (Staging Area)

El área de preparación, también llamada índice (Index), es un área de almacenamiento temporal que guarda los cambios que están a punto de confirmarse en el repositorio local. Puedes agregar selectivamente los cambios del directorio de trabajo al área de preparación, de modo que puedas confirmar los cambios de varios archivos a la vez sin tener que confirmar los cambios de todos los archivos.

  • Usa elgit add <filename>comando para agregar archivos del directorio de trabajo al área de preparación.
  • Usa elgit add .comando para agregar todos los cambios del directorio actual al área de preparación.
git add <filename>  # 添加指定文件到暂存区
git add .           # 添加所有更改到暂存区

Repositorio local (Local Repository)

El repositorio local es una base de datos oculta en el.gitdirectorio, que se utiliza para almacenar todo el historial de confirmaciones del proyecto. Cada vez que confirmas cambios, Git guarda el contenido del área de preparación en el repositorio local.

Usa elgit commit -m "commit message"comando para confirmar los cambios del área de preparación en el repositorio local.

git commit -m "commit message"  # 提交暂存区的更改到本地仓库

Flujo de transición de estados de archivos

Sin seguimiento (Untracked): los archivos recién creados inicialmente no tienen seguimiento. Existen en el directorio de trabajo, pero Git no los rastrea.

touch newfile.txt  # 创建一个新文件
git status         # 查看状态,显示 newfile.txt 未跟踪

Con seguimiento (Tracked): a través delgit addcomando, después de agregar archivos sin seguimiento al área de preparación, los archivos pasan al estado de seguimiento.

git add newfile.txt  # 添加文件到暂存区
git status           # 查看状态,显示 newfile.txt 在暂存区

Modificado (Modified): después de realizar cambios en archivos con seguimiento, estos cambios se muestran como estado modificado, pero aún no se han agregado al área de preparación.

echo "Hello, World!" > newfile.txt  # 修改文件
git status                          # 查看状态,显示 newfile.txt 已修改

En preparación (Staged): usa elgit addcomando, después de agregar los archivos modificados al área de preparación, los archivos entran en estado de preparación, a la espera de ser confirmados.

git add newfile.txt  # 添加文件到暂存区
git status           # 查看状态,显示 newfile.txt 已暂存

Confirmado (Committed): usa elgit commitcomando, después de confirmar los cambios del área de preparación en el repositorio local, estos cambios se registran y el estado del archivo vuelve al estado de seguimiento.

git commit -m "Added newfile.txt"  # 提交更改
git status                         # 查看状态,工作目录干净
Otras extensiones