comandos-git/README.md

337 lines
7.4 KiB
Markdown
Raw Normal View History

# Recopilación de comandos GIT
2022-10-19 09:00:41 +02:00
**Í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é)
2022-10-19 09:00:41 +02:00
2022-09-13 23:39:40 +02:00
## 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)*
2022-09-30 16:10:11 +02:00
## 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
2022-09-13 23:39:40 +02:00
## 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
2022-10-19 08:52:24 +02:00
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).
2022-11-26 21:44:21 +01:00
- 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é
2022-11-26 21:44:21 +01:00
<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)