Update 'Comandos Basicos Git'

jp.av.dev 2021-07-02 21:16:58 -04:00
parent 1a3bad8cb4
commit 9f6eadd559

@ -26,18 +26,18 @@
-----
## Instalar y configurar user:
```
```bash
# Repositorio, ej.
add-apt-repository ppa:git-core/ppa
```
```
```bash
git --version
git config --global user.name "Nombre"
git config --global user.mail "Mail Git"
```
```
```bash
# Lista de configuracion global
git config --global --list
@ -46,7 +46,7 @@ git help (comando)
```
# Secuencia tipica de uso:
## Crear repositorio en directorio actual
```
```bash
git init
git add [archivo odirectorio]
git add -A (Agregar todo a confirmacion)
@ -83,7 +83,8 @@ git commit -m "--amend para sobreescribir el ultimo commit" --amend
`git reset --hard [SHA commit]`
#### MIXED: Staging Area = Repository. Working Dir a la espera de la iteracion basica (add, commit)
#### MIXED:
##### Staging Area = Repository. Working Dir a la espera de la iteracion basica (add, commit)
Sire para encapsular por ejemplo: restear 5 commits para integrarlos en un solo commit"
Si vuelvo a hacer un reset --mixed a un commit de los que fueron encapsulados, se ignora/
elimina el commit que encapsulaba estos.
@ -97,7 +98,8 @@ git commit -m "--amend para sobreescribir el ultimo commit" --amend
### CHECKOUT
##### "Ir a una version, deatached mode, permite generar una nueva rama(branch) a partir de este"
```git chekout [SHA commit]
```bash
git chekout [SHA commit]
Te encuentras en estado 'detached HEAD'. Puedes revisar por aquí, hacer
cambios experimentales y hacer commits, y puedes descartar cualquier
@ -120,14 +122,14 @@ git commit -m "--amend para sobreescribir el ultimo commit" --amend
Ver ramas: `git branches --list`
#### Crear rama
```
```bash
git branch "nombre_rama"
# checkout -b crea la rama y posiciona en ese punto
git checkout -b "nombre_de_raiz_para_nueva_rama"
```
#### Borrar rama
```
```bash
git branch -d "rama"
-D (para forzar)
```
@ -153,7 +155,7 @@ git branch -d "rama"
##### (desde la rama a realizar rebase)
##### añade los comits de la rama experimental delante de la rama master
##### posterior al REBASE (master) sigue en su último anterior commit
```
```bash
git rebase master
git checkout master
git merge "rama experimental"
@ -174,7 +176,7 @@ git merge "rama experimental"
`git log -2 # ver los últimos 2 commits`
#### filtros:
```
```bash
git log --after="today"
--after="2020-12-07"
--after="2020-12-07" --before="today"
@ -185,7 +187,7 @@ git log --after="today"
`log -S"búsqueda"`
### Alias Log
```
```bash
git config --global alias.lg "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"
git config --global alias.lg2 "log --graph --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all"
@ -193,7 +195,7 @@ git config --global alias.lg2 "log --graph --decorate --format=format:'%C(bold b
### Git stash
##### guarda cambios en un estado termporal, no aplica cambios inmediatamente
```
```bash
git stash
git stash list
git stash apply
@ -216,7 +218,7 @@ git stash apply
`ssh-add -l`
##### Crear una llave
##### SSH -t (algoritmo=rsa) -b (bits key) -C "comentario/mail"
```
```bash
ssh-keygen -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "john@example.com"
ssh-keygen -t rsa -b 4096 -C "mail@git"
@ -232,7 +234,7 @@ cat .ssh/[key_rsa.pub]
### Manejo de Identidades git
- Configuracion por archivo **~/.ssh/config**
```
```bash
Host gitfuzan
Hostname jpdev.kickto.net
User fuzan
@ -241,11 +243,11 @@ cat .ssh/[key_rsa.pub]
Port 22
```
ej. al agregar repositorio remoto, usar host en comando:
```
```bash
git remote add origin ssh://git@gitfuzan/jp.av.dev/basicos_git.git
```
- Configuración por directorio (repositorio)
```
```bash
git config --local user.name "fuzan"
git config --local user.email "fuzan@email.net"
git config --local core.sshCommand "ssh -i ~/.ssh/keys/id_rsa -F /dev/null"
@ -255,7 +257,7 @@ cat .ssh/[key_rsa.pub]
## Médotodos remotos tipícos
### Clonar repositorio (o https):
```
```sh
# Opcion para escificar llave
#..."From Git version 2.10.0, you can configure this per repo or globally,
# so you don't have to set the environment variable."...
@ -266,13 +268,13 @@ git clone ssh://sshUsr@domino/usrRepo/Repo.git
```
### Ver y eliminar vinculo con repositorio remoto
```
```bash
git remote -v
git remote rm origin
```
### Crear nuevo repositorio remoto
```
```sh
touch README.md
git init
@ -294,7 +296,7 @@ git push -u origin master
## Git ignore
"Crear archivo .gitignore añadir archivo/carpeta/extension para ignorarlos
no guardar archivos sensibles, regex, ej. .*"
```
```sh
ignorar_directorio/
dir2
archivo_a_ignorar.txt