...en construcción...
commit
f5c2b1cf70
238
Comandos-Basicos-Git.md
Normal file
238
Comandos-Basicos-Git.md
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
# Hoja de comandos basicos git
|
||||||
|
-----
|
||||||
|
## Instalar y configurar user:
|
||||||
|
|
||||||
|
```
|
||||||
|
# Repositorio, ej.
|
||||||
|
add-apt-repository ppa:git-core/ppa
|
||||||
|
```
|
||||||
|
```
|
||||||
|
git --version
|
||||||
|
|
||||||
|
git config --global user.name "Nombre"
|
||||||
|
git config --global user.mail "Mail Git"
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
# Lista de configuracion global
|
||||||
|
git config --global --list
|
||||||
|
|
||||||
|
# Ayuda
|
||||||
|
git help (comando)
|
||||||
|
```
|
||||||
|
# Secuencia tipica de uso:
|
||||||
|
## Crear repositorio en directorio actual
|
||||||
|
```
|
||||||
|
git init
|
||||||
|
git add [archivo odirectorio]
|
||||||
|
git add -A (Agregar todo a confirmacion)
|
||||||
|
|
||||||
|
git commit -m "Mensaje"
|
||||||
|
|
||||||
|
# add -A + Commit
|
||||||
|
git commit -am "Mensaje"
|
||||||
|
|
||||||
|
git commit -m "--amend para sobreescribir el ultimo commit" --amend
|
||||||
|
```
|
||||||
|
### HEAD, puntero, indica el commint en el cual esta situado el puntero de git
|
||||||
|
|
||||||
|
### Listar Ramas
|
||||||
|
`git branches --list`
|
||||||
|
|
||||||
|
### Otros
|
||||||
|
```
|
||||||
|
git status
|
||||||
|
git log
|
||||||
|
git config --global alias.[alias] "comando" # Alias
|
||||||
|
```
|
||||||
|
## Git Reset
|
||||||
|
#### RESET
|
||||||
|
##### deja el proyecto en el stado del commit indicado
|
||||||
|
##### ***--hard --mixed --soft***
|
||||||
|
|
||||||
|
|
||||||
|
#### HARD:
|
||||||
|
##### Working Dir = Staging Area = Repository
|
||||||
|
`git reset --hard [SHA 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.
|
||||||
|
`git reset --mixed [SHA commit]`
|
||||||
|
##### Hay q hacer el add y commit del cambio
|
||||||
|
|
||||||
|
#### SOFT:
|
||||||
|
No afecta el working area?
|
||||||
|
`git reset --soft [SHA commit]`
|
||||||
|
##### Solo hay q hacer el commit para aplicar el cambio
|
||||||
|
|
||||||
|
### CHECKOUT
|
||||||
|
##### "Ir a una version, deatached mode, permite generar una nueva rama(branch) a partir de este"
|
||||||
|
```git chekout [SHA commit]
|
||||||
|
|
||||||
|
Te encuentras en estado 'detached HEAD'. Puedes revisar por aquí, hacer
|
||||||
|
cambios experimentales y hacer commits, y puedes descartar cualquier
|
||||||
|
commit que hayas hecho en este estado sin impactar a tu rama realizando
|
||||||
|
otro checkout.
|
||||||
|
|
||||||
|
Si quieres crear una nueva rama para mantener los commits que has creado,
|
||||||
|
puedes hacerlo (ahora o después) usando -c con el comando checkout. Ejemplo:
|
||||||
|
**git switch -c <nombre-de-nueva-rama>**
|
||||||
|
O deshacer la operación con:
|
||||||
|
**git switch -**
|
||||||
|
```
|
||||||
|
##### Cada ***commit tiene un parent*** .. "de que 'punto' viene"
|
||||||
|
|
||||||
|
## BRANCHES
|
||||||
|
##### linea alterna del repositorio
|
||||||
|
|
||||||
|
#### Crear rama
|
||||||
|
```
|
||||||
|
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
|
||||||
|
```
|
||||||
|
git branch -d "rama"
|
||||||
|
-D (para forzar)
|
||||||
|
```
|
||||||
|
##### al hacer el comit el head se posiciona en el top de la rama
|
||||||
|
`git commit -am "nuevo_commit"`
|
||||||
|
##### volver a la rama principal
|
||||||
|
`git checkout master`
|
||||||
|
##### Mover HEAD entre ramas
|
||||||
|
`git checkout "rama"`
|
||||||
|
|
||||||
|
##### Omitir preparación archivo
|
||||||
|
git checkout -- "archivo"
|
||||||
|
|
||||||
|
### FUSIONAR ramas
|
||||||
|
##### (fusiona desde la rama actual, debes posicionarte en master)
|
||||||
|
`git merge "rama"`
|
||||||
|
|
||||||
|
#### SOLUCIONES de CONFLICTOS de FUSIONES:
|
||||||
|
##### -Fast-Forward -Manual Merge
|
||||||
|
|
||||||
|
|
||||||
|
### REBASE
|
||||||
|
##### (desde la rama a realizar rebase)
|
||||||
|
##### añade los comits de la ram experimental delante de la rama master
|
||||||
|
##### posterior al REBASE (master) sigue en su último anterior commit
|
||||||
|
```
|
||||||
|
git rebase master
|
||||||
|
git checkout master
|
||||||
|
git merge "experimental"
|
||||||
|
```
|
||||||
|
### LOG
|
||||||
|
#### Log STAT, explica con detalle nro. de lienas cambiadas
|
||||||
|
`git log --stat`
|
||||||
|
|
||||||
|
#### Log con DIFF
|
||||||
|
`git log -p`
|
||||||
|
|
||||||
|
#### Log por author
|
||||||
|
`git shortlog`
|
||||||
|
|
||||||
|
#### otros
|
||||||
|
`git log -2 # ver los últimos 2 commits`
|
||||||
|
|
||||||
|
#### filtros:
|
||||||
|
```
|
||||||
|
git log --after="today"
|
||||||
|
--after="2020-12-07"
|
||||||
|
--after="2020-12-07" --before="today"
|
||||||
|
--author="nombre"
|
||||||
|
--grep="grep" -i (ignore Lower/Upper)
|
||||||
|
```
|
||||||
|
##### Busqueda por contenido de archivos, muestra en que commit se creó
|
||||||
|
`log -S"búsqueda"`
|
||||||
|
|
||||||
|
### Alias Log
|
||||||
|
```
|
||||||
|
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 stash
|
||||||
|
##### guarda cambios en un estado termporal, no aplica cambios inmediatamente
|
||||||
|
```
|
||||||
|
git stash
|
||||||
|
git stash list
|
||||||
|
git stash aplply
|
||||||
|
```
|
||||||
|
### Git fetch
|
||||||
|
`git help fetch`
|
||||||
|
|
||||||
|
### Git diff
|
||||||
|
##### muestra las diferencias hasta el punto en el este desde el commit indicado
|
||||||
|
`git diff 'commit id'
|
||||||
|
|
||||||
|
### Clonar Repositorio
|
||||||
|
`git clone [repos ssh o https]`
|
||||||
|
|
||||||
|
### Llaves ssh
|
||||||
|
##### listar llaves
|
||||||
|
`ssh-add -l`
|
||||||
|
##### SSH -t (algoritmo=rsa) -b (bits key) -C "comentario/mail"
|
||||||
|
```ssh-keygen -t rsa -b 4096 -C "mail@git"
|
||||||
|
|
||||||
|
$ eval $(ssh-agent -s)
|
||||||
|
> Agent pid 59566
|
||||||
|
|
||||||
|
ssh-add .ssh/[key_rsa]
|
||||||
|
|
||||||
|
cat .ssh/[key_rsa.pub]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Médotodos remotos tipícos (git-repos)
|
||||||
|
|
||||||
|
### Clonar repositorio (o https):
|
||||||
|
```
|
||||||
|
git clone ssh://gite@192.168.0.8/jp.av.dev/test_repo.git
|
||||||
|
|
||||||
|
|
||||||
|
"Creating a new repository on the command line"
|
||||||
|
|
||||||
|
touch README.md
|
||||||
|
git init
|
||||||
|
|
||||||
|
git add README.md
|
||||||
|
git commit -m "first commit"
|
||||||
|
git remote add origin sshUsr@host:RepoUsr/Repo.git
|
||||||
|
git push -u origin master
|
||||||
|
```
|
||||||
|
### Ver y eliminar vinculo con repositorio remoto
|
||||||
|
```
|
||||||
|
git remote -v
|
||||||
|
git remote rm origin
|
||||||
|
|
||||||
|
"Pushing an existing repository from the command line"
|
||||||
|
" ssh "
|
||||||
|
git remote add origin gite@192.168.0.8:333/jp.av.dev/test_r.git
|
||||||
|
git push -u origin master
|
||||||
|
|
||||||
|
" http "
|
||||||
|
git remote add origin http://192.168.0.8:3000/jp.av.dev/test_repo.git
|
||||||
|
```
|
||||||
|
|
||||||
|
## Git ignore
|
||||||
|
"Crear archivo .gitignore añadir archivo/carpeta/extension para ignorarlos
|
||||||
|
no guardar archivos sensibles, regex, ej. .*"
|
||||||
|
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 📌️ **Docs, Referencias...**
|
||||||
|
|
||||||
|
* [All Commmands](https://git-scm.com/docs/git)
|
||||||
|
* [Git Reference](https://git-scm.com/docs)
|
||||||
|
* [PDF Cheat Sheet](https://education.github.com/git-cheat-sheet-education.pdf)
|
||||||
|
* [PDF Cheat Sheet 2](https://github.github.com/training-kit/downloads/github-git-cheat-sheet.pdf)
|
||||||
|
* [Interactive Cheat Sheet](https://ndpsoftware.com/git-cheatsheet.html)
|
Loading…
Reference in New Issue
Block a user