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