...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