=====Comandos de Git===== [[Git]] es un intérprete de comandos también. Los comandos debes ejecutarlos en tu directorio de repositorios. En el caso de texto-plano.xyz es ''~/public_repos''. ===Establecer un repositorio=== |''git init'' |Inicializa un nuevo repositorio Git. | |''git clone'' //url_repositorio// |Clona un repositorio existente desde una URL. | ===Configurar Git=== |''git config --global user.name "$USER"'' |Configura tu nombre. | |''git config --global user.email "$USER@texto-plano.xyz"'' |Configura tu dirección de correo electrónico del repositorio. | |''git config --global core.editor'' ''emacs'' |Configura el editor por defecto de Git: ''vim'', ''nano'', ''emacs'' | |''git config --list'' |Lista todas las configuraciones del git | ===Instantáneas básicas=== |''git add'' ''fichero'' |Prepara cambios para el commit | |''git add .'' |Prepara todos los cambios en el directorio para el commit | |''git commit -m'' ''"Tu mensaje"'' |Hace el commit de los cambios preparados con un mensaje | |''git status'' |Muestra el status del directorio de trabajo de git. | |''git log'' |Muestra el historial del commit | |''git diff'' |Muestra el historial de cambios en los ficheros que aún no fueron peparados | |''git diff --staged'' |Muestra cambios entre el área de preparación y el último commit | |''git rm fichero'' |Borra un fichero del directorio de trabajo y del área de preparación | ===Ramas y Unificaciones=== |''git branch'' |Lista las ramas | |''git branch'' //nueva-rama// |Crea una rama nueva llamada //nueva-rama// | |''git checkout'' //rama// |Cambia a una rama diferente | |''git checkout -b'' //nueva-rama// |Crea una nueva rama y cambia a ella. | |''git merge'' //rama// |Une una rama a la rama actual | |''git branch -d'' //rama// |Borra una rama (solo si la ha unificado | |''git branch -D'' //rama// |Borrado forzado de una rama (incluso si no está unificada) | ===Deshacer cambios=== |''git reset --hard HEAD'' |descarta todos los cambios locales | |''git checkout --'' ''fichero'' |descarta los cambios en el fichero especificado | |''git revert'' //id-commit// |Crea una nueva commit que deshaga los cambios realizados por la commit especificada. | |''git reset'' //id-commit// |Mueve el puntero de rama actual a una commit previa (reseteo suave) | |''git reset --hard'' //id-commit// |Resetea a una commit previa descartando todos los cambios posteriores a la misma | ===Trabajando con Remotos=== |''git remote add origin'' //url_repo// |Agrega un repositorio remoto | |''git remote -v'' |Lista los repositorios remotos | |''git fetch'' |Descarga los objetos y referencias de un repositorio remoto | |''git pull'' |Consigue y unifica los cambios referenciando desde el repositorio remoto | |''git push origin'' //rama// |Envía una rama al repositorio remoto | |''git push origin --delete'' //rama// |Borra una rama remota | ===Almacenando cambios=== |''git stash'' |Almacena temporalmente los cambios en un directorios de trabajo sucio | |''git stash list'' |Lista todos los cambios almacenados temporalmente | |''git stash apply'' |Aplica el almacén temporal mas reciente | |''git stash apply stash@{''//índice//''}'' |Aplica un almacén temporal específico | |''git stash drop'' |Remueve el almacén temporal más reciente | |''stash pop'' |Aplica y remueve el almacén temporal mas reciente | ===Etiquetado=== |''git tag'' //etiqueta// |Crea una etiqueta nueva para el repositorio | |''git tag'' |Lista todas las etiquetas del repositorio | |''git show'' //etiqueta// |Muestra los detalles de una etiqueta | |''git push origin'' //etiqueta// |Envía una etiqueta al repositorio remoto | ===Ver diferencias=== |''git diff'' |Muestra cambios entre el directorios de trabajo y el índice | |''git diff HEAD'' |Muestra los cambios entre el directorio de trabajo y el último commit | |''git diff'' //rama// |Muestra los cambios entre la rama actual y otra rama | ===Inspeccionar y comparar=== |''git show'' //id-commit// |Muestra detalles de un commit específico | |''git log --oneline --graph --decorate --all'' |Muestra un registro gráfico de commits | |''git blame'' ''fichero'' |Muestra qué revisión y autor modificó por última vez cada línea de un fichero | |''git shortlog'' |Resume historial de commits por autor | ===Colaboración y revisión=== |''git fetch origin'' |Recoge cambios desde el repositorio remoto. | |''git pull origin'' //rama// |Trae los cambios desde la rama remota y la unifica | |''git push origin'' //rama// |Envia una rama local al repositorio remoto | |''git cherry-pick'' //id-commit'' |Aplica los cambios desde una commit específica | ===Limpieza=== |''git clean -f'' |Remueve ficheros no rastreados del directorio de trabajo | |''git clean -fd'' |Remueve ficheros no rastrados y directorios | |''git gc'' |Optimiza el repositorio comprimiendo la historia de ficheros |