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 el
git add <filename>comando para agregar archivos del directorio de trabajo al área de preparación. - Usa el
git 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