337 lines
7.4 KiB
Markdown
337 lines
7.4 KiB
Markdown
# Recopilación de comandos GIT
|
|
|
|
**Índice**
|
|
|
|
- [Recopilación de comandos GIT](#recopilación-de-comandos-git)
|
|
- [Configuración Básica](#configuración-básica)
|
|
- [Listar Git Config](#listar-git-config)
|
|
- [Iniciando repositorio](#iniciando-repositorio)
|
|
- [GIT CLONE](#git-clone)
|
|
- [GIT ADD](#git-add)
|
|
- [GIT COMMIT](#git-commit)
|
|
- [GIT PUSH](#git-push)
|
|
- [GIT LOG](#git-log)
|
|
- [GIT DIFF](#git-diff)
|
|
- [GIT HEAD](#git-head)
|
|
- [GIT REMOTE](#git-remote)
|
|
- [GIT BRANCH](#git-branch)
|
|
- [GIT TAG](#git-tag)
|
|
- [GIT REBASE](#git-rebase)
|
|
- [OTROS COMANDOS](#otros-comandos)
|
|
- [Fork](#fork)
|
|
- [Info de Git con más detalles](#info-de-git-con-más-detalles)
|
|
- [Invítame a un café](#invítame-a-un-café)
|
|
|
|
## Configuración Básica
|
|
|
|
Configurar Nombre que salen en los commits
|
|
```ssh
|
|
git config --global user.name "dasdo"
|
|
```
|
|
Configurar Email
|
|
```ssh
|
|
git config --global user.email dasdo1@gmail.com
|
|
```
|
|
Marco de colores para los comando
|
|
```ssh
|
|
git config --global color.ui true
|
|
```
|
|
|
|
*Ejemplo de configuración del archivo [.gitconfig](.gitconfig)*
|
|
|
|
## Listar Git Config
|
|
|
|
Listar toda la configuración Git
|
|
|
|
git config --list
|
|
|
|
Muestra la ubicación de los archivos de configuración Git donde se definen estos ajustes
|
|
|
|
git config --list --show-origin
|
|
|
|
Separar las listas de configuración global, local y system
|
|
|
|
git config --list --local
|
|
git config --list --global
|
|
git config --list --system
|
|
|
|
## Iniciando repositorio
|
|
|
|
Iniciamos GIT en la carpeta donde esta el proyecto
|
|
```ssh
|
|
git init
|
|
```
|
|
Clonamos el repositorio de github o bitbucket
|
|
```ssh
|
|
git clone <url>
|
|
```
|
|
Añadimos todos los archivos para el commit
|
|
```ssh
|
|
git add .
|
|
```
|
|
Hacemos el primer commit
|
|
```ssh
|
|
git commit -m "Texto que identifique por que se hizo el commit"
|
|
```
|
|
subimos al repositorio
|
|
```ssh
|
|
git push origin master
|
|
```
|
|
|
|
## GIT CLONE
|
|
|
|
|
|
Clonamos el repositorio de github o bitbucket
|
|
```ssh
|
|
git clone <url>
|
|
```
|
|
Clonamos el repositorio de github o bitbucket ?????
|
|
```ssh
|
|
git clone <url> git-demo
|
|
```
|
|
|
|
## GIT ADD
|
|
|
|
|
|
Añadimos todos los archivos para el commit
|
|
```ssh
|
|
git add .
|
|
```
|
|
Añadimos el archivo para el commit
|
|
```ssh
|
|
git add <archivo>
|
|
```
|
|
Añadimos todos los archivos para el commit omitiendo los nuevos
|
|
```ssh
|
|
git add --all
|
|
```
|
|
Añadimos todos los archivos con la extensión especificada
|
|
```ssh
|
|
git add *.txt
|
|
```
|
|
Añadimos todos los archivos dentro de un directorio y de una extensión especifica
|
|
```ssh
|
|
git add docs/*.txt
|
|
```
|
|
Añadimos todos los archivos dentro de un directorios
|
|
```ssh
|
|
git add docs/
|
|
```
|
|
## GIT COMMIT
|
|
|
|
Cargar en el HEAD los cambios realizados
|
|
```ssh
|
|
git commit -m "Texto que identifique por que se hizo el commit"
|
|
```
|
|
Agregar y Cargar en el HEAD los cambios realizados
|
|
```ssh
|
|
git commit -a -m "Texto que identifique por que se hizo el commit"
|
|
```
|
|
De haber conflictos los muestra
|
|
```ssh
|
|
git commit -a
|
|
```
|
|
Agregar al ultimo commit, este no se muestra como un nuevo commit en los logs. Se puede especificar un nuevo mensaje
|
|
```ssh
|
|
git commit --amend -m "Texto que identifique por que se hizo el commit"
|
|
```
|
|
## GIT PUSH
|
|
|
|
Subimos al repositorio
|
|
```ssh
|
|
git push <origien> <branch>
|
|
```
|
|
Subimos un tag
|
|
```ssh
|
|
git push --tags
|
|
```
|
|
## GIT LOG
|
|
|
|
Muestra los logs de los commits
|
|
```ssh
|
|
git log
|
|
```
|
|
Muestras los cambios en los commits
|
|
```ssh
|
|
git log --oneline --stat
|
|
```
|
|
Muestra graficos de los commits
|
|
```ssh
|
|
git log --oneline --graph
|
|
```
|
|
## GIT DIFF
|
|
|
|
Muestra los cambios realizados a un archivo
|
|
```ssh
|
|
git diff
|
|
git diff --staged
|
|
```
|
|
## GIT HEAD
|
|
|
|
Saca un archivo del commit
|
|
```ssh
|
|
git reset HEAD <archivo>
|
|
```
|
|
Devuelve el ultimo commit que se hizo y pone los cambios en staging
|
|
```ssh
|
|
git reset --soft HEAD^
|
|
```
|
|
Devuelve el ultimo commit y todos los cambios
|
|
```ssh
|
|
git reset --hard HEAD^
|
|
```
|
|
Devuelve los 2 ultimo commit y todos los cambios
|
|
```ssh
|
|
git reset --hard HEAD^^
|
|
```
|
|
Rollback merge/commit
|
|
```ssh
|
|
git log
|
|
git reset --hard <commit_sha>
|
|
```
|
|
## GIT REMOTE
|
|
|
|
Agregar repositorio remoto
|
|
```ssh
|
|
git remote add origin <url>
|
|
```
|
|
Cambiar de remote
|
|
```ssh
|
|
git remote set-url origin <url>
|
|
```
|
|
Remover repositorio
|
|
```ssh
|
|
git remote rm <name/origin>
|
|
```
|
|
Muestra lista repositorios
|
|
```ssh
|
|
git remote -v
|
|
```
|
|
Muestra los branches remotos
|
|
```ssh
|
|
git remote show origin
|
|
```
|
|
Limpiar todos los branches eliminados
|
|
```ssh
|
|
git remote prune origin
|
|
```
|
|
## GIT BRANCH
|
|
|
|
Crea un branch
|
|
```ssh
|
|
git branch <nameBranch>
|
|
```
|
|
Lista los branches
|
|
```ssh
|
|
git branch
|
|
```
|
|
Comando -d elimina el branch y lo une al master
|
|
```ssh
|
|
git branch -d <nameBranch>
|
|
```
|
|
Elimina sin preguntar
|
|
```ssh
|
|
git branch -D <nameBranch>
|
|
```
|
|
## GIT TAG
|
|
|
|
Muestra una lista de todos los tags
|
|
```ssh
|
|
git tag
|
|
```
|
|
Crea un nuevo tags
|
|
```ssh
|
|
git tag -a <verison> - m "esta es la versión x"
|
|
```
|
|
## GIT REBASE
|
|
|
|
Los rebase se usan cuando trabajamos con branches esto hace que los branches se pongan al día con el master sin afectar al mismo
|
|
|
|
Une el branch actual con el mastar, esto no se puede ver como un merge
|
|
```ssh
|
|
git rebase
|
|
```
|
|
Cuando se produce un conflicto no das las siguientes opciones:
|
|
|
|
cuando resolvemos los conflictos --continue continua la secuencia del rebase donde se pauso
|
|
```ssh
|
|
git rebase --continue
|
|
```
|
|
Omite el conflicto y sigue su camino
|
|
```ssh
|
|
git rebase --skip
|
|
```
|
|
Devuelve todo al principio del rebase
|
|
```ssh
|
|
git reabse --abort
|
|
```
|
|
Para hacer un rebase a un branch en especifico
|
|
```ssh
|
|
git rebase <nameBranch>
|
|
```
|
|
## OTROS COMANDOS
|
|
|
|
Lista un estado actual del repositorio con lista de archivos modificados o agregados
|
|
```ssh
|
|
git status
|
|
```
|
|
Quita del HEAD un archivo y le pone el estado de no trabajado
|
|
```ssh
|
|
git checkout -- <file>
|
|
```
|
|
Crea un branch en base a uno online
|
|
```ssh
|
|
git checkout -b newlocalbranchname origin/branch-name
|
|
```
|
|
Busca los cambios nuevos y actualiza el repositorio
|
|
```ssh
|
|
git pull origin <nameBranch>
|
|
```
|
|
Cambiar de branch
|
|
```ssh
|
|
git checkout <nameBranch/tagname>
|
|
```
|
|
Une el branch actual con el especificado
|
|
```ssh
|
|
git merge <nameBranch>
|
|
```
|
|
Verifica cambios en el repositorio online con el local
|
|
```ssh
|
|
git fetch
|
|
```
|
|
Borrar un archivo del repositorio
|
|
```ssh
|
|
git rm <archivo>
|
|
```
|
|
|
|
## Fork
|
|
|
|
Descargar remote de un fork
|
|
```
|
|
git remote add upstream <url>
|
|
```
|
|
|
|
Merge con master de un fork
|
|
```
|
|
git fetch upstream
|
|
git merge upstream/master
|
|
```
|
|
|
|
## Info de Git con más detalles
|
|
Con explicaciones, gráficos, emoticonos... no tan seco como este README:
|
|
- [Apuntes del Curso de Git](https://vergaracarmona.es/wp-content/uploads/2022/10/Curso-git_vergaracarmona.es_.pdf) de [Juan Carlos Rubio](https://www.linkedin.com/in/juan-carlos-rubio-pineda-es) en [OpenWebinars](https://openwebinars.net/cursos/git/) por el que me dieron esta [certificación](https://vergaracarmona.es/wp-content/uploads/2022/05/OpenWebinars-Git.pdf).
|
|
- En mis [apuntes](https://vergaracarmona.es/apuntes/).
|
|
- ["Instalar git en ubuntu"](https://vergaracarmona.es/instalar-git-en-ubuntu/)
|
|
- ["Comandos de git"](https://vergaracarmona.es/comandos-de-git/)
|
|
- ["Estrategias de fusión en git: Ship / Show / Ask"](https://vergaracarmona.es/estrategias-bifurcacion-git-ship-show-ask/)
|
|
- ["Resolver conflictos en Git. Merge, Squash, Rebase o Pull"](https://vergaracarmona.es/merge-squash-rebase-pull/)
|
|
- ["Borrar commits de git: reset, rebase y cherry-pick"](https://vergaracarmona.es/reset-rebase-cherry-pick/)
|
|
|
|
## Invítame a un café
|
|
<p>
|
|
<a href="https://www.buymeacoffee.com/manuelver"> <img align="left" src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" height="50" width="210" alt="https://www.buymeacoffee.com/manuelver" /></a>
|
|
</p>
|
|
|
|
<br><br><br>
|
|
|
|
[Manuel Vergara](https://vergaracarmona.es) |