edicion
parent
6823431e04
commit
5f3e37f4b1
@ -33,13 +33,14 @@ add-apt-repository ppa:git-core/ppa
|
|||||||
```bash
|
```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"
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Lista de configuracion global
|
# Lista de configuracion
|
||||||
git config --global --list
|
git config --global --list
|
||||||
|
git config --local --list
|
||||||
|
|
||||||
# Ayuda
|
# Ayuda
|
||||||
git help (comando)
|
git help (comando)
|
||||||
@ -53,51 +54,55 @@ git add -A (Agregar todo a confirmacion)
|
|||||||
|
|
||||||
# Remove a file from the workspace and the index
|
# Remove a file from the workspace and the index
|
||||||
git rm file(s)...
|
git rm file(s)...
|
||||||
|
git commit -m "mensaje"
|
||||||
git commit -m "Mensaje"
|
|
||||||
|
|
||||||
# add -A + Commit
|
# add -A + Commit
|
||||||
git commit -am "Mensaje"
|
git commit -am "mensaje"
|
||||||
|
|
||||||
git commit -m "--amend para sobreescribir el ultimo commit" --amend
|
git commit -m "--amend para sobreescribir el ultimo commit" --amend
|
||||||
```
|
```
|
||||||
##### HEAD ` indica el commint en el cual esta situado el puntero de git`
|
***HEAD*** : indica el commit en el cual esta situado el puntero de git
|
||||||
|
|
||||||
### Otros
|
### Otros
|
||||||
`git status`
|
```sh
|
||||||
|
git status
|
||||||
`git log`
|
git log
|
||||||
|
git config --global alias.[alias] "comando"`
|
||||||
`git config --global alias.[alias] "comando"` Alias
|
git branches --list
|
||||||
|
```
|
||||||
`git branches --list`
|
|
||||||
|
|
||||||
## Git Reset
|
## Git Reset
|
||||||
#### RESET
|
**RESET** : deja el proyecto en el stado del commit indicado
|
||||||
##### deja el proyecto en el stado del commit indicado
|
* ***--hard***
|
||||||
##### ***--hard --mixed --soft***
|
* ***--mixed***
|
||||||
|
* ***--soft***
|
||||||
|
|
||||||
|
|
||||||
#### HARD:
|
#### HARD:
|
||||||
##### Working Dir = Staging Area = Repository
|
***Working Dir = Staging Area = Repository***
|
||||||
`git reset --hard [SHA commit]`
|
```sh
|
||||||
|
git reset --hard [SHA commit]
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
#### MIXED:
|
#### MIXED:
|
||||||
##### Staging Area = Repository. Working Dir a la espera de la iteracion basica (add, commit)
|
***Staging Area = Repository***
|
||||||
Sire para encapsular por ejemplo: restear 5 commits para integrarlos en un solo commit"
|
Working Dir a la espera de la iteracion basica (add, 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]`
|
|
||||||
##### ~Despues de un cambio:~ add luego commit.
|
|
||||||
|
|
||||||
|
Sirve para encapsular, por ejemplo: restear 5 commits para integrarlos en un solo commit
|
||||||
|
|
||||||
|
Al realizar otro **reset --mixed** a un **commit** de los que fueron encapsulados, se ignora el commit que los encapsula.
|
||||||
|
```sh
|
||||||
|
git reset --mixed [SHA commit]
|
||||||
|
# despues de un cambio: add luego commit
|
||||||
|
```
|
||||||
#### SOFT:
|
#### SOFT:
|
||||||
No afecta el working area?
|
No afecta el working area?
|
||||||
`git reset --soft [SHA commit]`
|
```sh
|
||||||
##### Solo hay q hacer el commit para aplicar el cambio
|
git reset --soft [SHA commit]
|
||||||
|
# solo hay q hacer el commit para aplicar el cambio
|
||||||
|
```
|
||||||
|
|
||||||
### CHECKOUT
|
### CHECKOUT
|
||||||
##### "Ir a una version, deatached mode, permite generar una nueva rama(branch) a partir de este"
|
**Ir al modo 'deatached', permite generar una nueva rama(branch) a partir de este**
|
||||||
```bash
|
```bash
|
||||||
git chekout [SHA commit]
|
git chekout [SHA commit]
|
||||||
|
|
||||||
@ -108,16 +113,15 @@ git commit -m "--amend para sobreescribir el ultimo commit" --amend
|
|||||||
|
|
||||||
Si quieres crear una nueva rama para mantener los commits que has creado,
|
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:
|
puedes hacerlo (ahora o después) usando -c con el comando checkout. Ejemplo:
|
||||||
**git switch -c <nombre-de-nueva-rama>**
|
git switch -c <nombre-de-nueva-rama>
|
||||||
O deshacer la operación con:
|
O deshacer la operación con:
|
||||||
**git switch -**
|
git switch -
|
||||||
```
|
```
|
||||||
##### Cada ***commit tiene un parent*** .. "de que 'punto' viene"
|
***Cada commit tiene un parent*** .. de que 'punto' viene
|
||||||
|
|
||||||
## BRANCHES
|
## BRANCHES
|
||||||
------
|
|
||||||
|
|
||||||
##### linea alterna del repositorio
|
**Ramas o Lineas alternativas del repositorio**
|
||||||
|
|
||||||
Ver ramas: `git branches --list`
|
Ver ramas: `git branches --list`
|
||||||
|
|
||||||
@ -134,59 +138,66 @@ git branch -d "rama"
|
|||||||
-D (para forzar)
|
-D (para forzar)
|
||||||
```
|
```
|
||||||
##### al hacer el comit el head se posiciona en el top de la rama
|
##### al hacer el comit el head se posiciona en el top de la rama
|
||||||
`git commit -am "nuevo_commit"`
|
```sh
|
||||||
##### volver a la rama principal
|
git commit -am "nuevo_commit"
|
||||||
`git checkout master`
|
|
||||||
##### Mover HEAD entre ramas
|
|
||||||
`git checkout "rama"`
|
|
||||||
|
|
||||||
##### Omitir preparación archivo
|
git checkout master # volver a la rama principal
|
||||||
`git checkout -- "archivo"`
|
|
||||||
|
|
||||||
### FUSIONAR ramas
|
git checkout "rama" # mover HEAD entre ramas
|
||||||
##### (fusiona desde la rama actual, debes posicionarte en master)
|
|
||||||
|
# omitir preparación archivo
|
||||||
|
git checkout -- "archivo"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fusionar ramas / Merge
|
||||||
|
***(fusiona desde la rama actual, debes posicionarte en master)***
|
||||||
`git merge "rama"`
|
`git merge "rama"`
|
||||||
|
|
||||||
#### SOLUCIONES de CONFLICTOS de FUSIONES:
|
**SOLUCIONES de CONFLICTOS de FUSIONES:**
|
||||||
##### -Fast-Forward -Manual Merge
|
* **-Fast-Forward**
|
||||||
|
* **-Manual Merge**
|
||||||
|
|
||||||
|
|
||||||
### REBASE
|
### REBASE
|
||||||
##### (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
|
```bash
|
||||||
git rebase master
|
git rebase master
|
||||||
git checkout master
|
git checkout master
|
||||||
git merge "rama experimental"
|
git merge "rama experimental"
|
||||||
```
|
```
|
||||||
|
----
|
||||||
|
|
||||||
## LOG
|
## LOG
|
||||||
-----
|
|
||||||
|
|
||||||
#### Log STAT, explica con detalle nro. de lienas cambiadas
|
**Log STAT** explica con detalle nro. de lineas cambiadas
|
||||||
`git log --stat`
|
```sh
|
||||||
|
git log --stat
|
||||||
|
|
||||||
#### Log con DIFF
|
# log con DIFF
|
||||||
`git log -p`
|
git log -p
|
||||||
|
|
||||||
#### Log por author
|
# log por author
|
||||||
`git shortlog`
|
git shortlog
|
||||||
|
|
||||||
#### otros
|
# otros
|
||||||
`git log -2 # ver los últimos 2 commits`
|
git log -2 # ver los últimos 2 commits
|
||||||
|
```
|
||||||
#### filtros:
|
**Filtros**
|
||||||
```bash
|
```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"
|
||||||
--author="nombre"
|
--author="nombre"
|
||||||
--grep="grep" -i (ignore Lower/Upper)
|
--grep="grep" -i (ignore Lower/Upper)
|
||||||
```
|
|
||||||
##### Busqueda por contenido de archivos, muestra en que commit se creó
|
|
||||||
`log -S"búsqueda"`
|
|
||||||
|
|
||||||
### Alias Log
|
# busqueda por contenido de archivos
|
||||||
|
# muestra en que commit se creó
|
||||||
|
git log -S"búsqueda"
|
||||||
|
```
|
||||||
|
#### Log personalizado y alias
|
||||||
```bash
|
```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"
|
||||||
|
|
||||||
@ -194,7 +205,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 temporal, no aplica los cambios inmediatamente
|
||||||
```bash
|
```bash
|
||||||
git stash
|
git stash
|
||||||
git stash list
|
git stash list
|
||||||
@ -204,21 +215,22 @@ git stash apply
|
|||||||
`git help fetch`
|
`git help fetch`
|
||||||
|
|
||||||
### Git diff
|
### Git diff
|
||||||
##### muestra las diferencias hasta el punto en el este desde el commit indicado
|
Muestra las diferencias desde el commit indicado hasta el punto en el que se encuentra el head
|
||||||
`git diff 'commit id'
|
`git diff 'commit id'`
|
||||||
|
|
||||||
### Clonar Repositorio
|
### Clonar Repositorio
|
||||||
`git clone [repos ssh o https]`
|
`git clone [repos ssh o https]`
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
## Llaves ssh
|
## Llaves ssh
|
||||||
------
|
```sh
|
||||||
|
# listar llaves
|
||||||
|
ssh-add -l
|
||||||
|
|
||||||
|
# crear llave
|
||||||
|
ssh-keygen -t (algoritmo=rsa) -b (bits key) -C "comentario/mail"
|
||||||
|
|
||||||
##### Listar llaves
|
|
||||||
`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 -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"
|
||||||
@ -231,7 +243,7 @@ ssh-add .ssh/[key_rsa]
|
|||||||
cat .ssh/[key_rsa.pub]
|
cat .ssh/[key_rsa.pub]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Manejo de Identidades git
|
### Manejo de identidades ssh
|
||||||
|
|
||||||
- Configuracion por archivo **~/.ssh/config**
|
- Configuracion por archivo **~/.ssh/config**
|
||||||
```bash
|
```bash
|
||||||
@ -250,55 +262,55 @@ cat .ssh/[key_rsa.pub]
|
|||||||
```bash
|
```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"
|
|
||||||
|
# Especificar 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."...
|
||||||
|
git config --local core.sshCommand "ssh -i ~/.ssh/id_rsa_example -F /dev/null"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Médotodos remotos tipícos
|
## Médotodos remotos tipícos
|
||||||
|
|
||||||
### Clonar repositorio (o https):
|
**Clonar** repositorio (ssh o https)
|
||||||
```sh
|
```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."...
|
|
||||||
|
|
||||||
git config --local core.sshCommand "ssh -i ~/.ssh/id_rsa_example -F /dev/null"
|
|
||||||
|
|
||||||
git clone ssh://sshUsr@domino/usrRepo/Repo.git
|
git clone ssh://sshUsr@domino/usrRepo/Repo.git
|
||||||
|
git clone https://dominio/usrRepo/Repo.git
|
||||||
```
|
```
|
||||||
|
|
||||||
### Ver y eliminar vinculo con repositorio remoto
|
**Ver y eliminar vinculo** con repositorio remoto
|
||||||
```bash
|
```bash
|
||||||
git remote -v
|
git remote -v
|
||||||
git remote rm origin
|
git remote rm origin
|
||||||
```
|
```
|
||||||
|
|
||||||
### Crear nuevo repositorio remoto
|
**Crear** nuevo repositorio remoto
|
||||||
```sh
|
```sh
|
||||||
touch README.md
|
touch README.md
|
||||||
git init
|
git init
|
||||||
|
#git config....
|
||||||
git add README.md
|
git add README.md
|
||||||
git commit -m "first commit"
|
git commit -m "first commit"
|
||||||
git remote add origin sshUsr@host:RepoUsr/Repo.git
|
git remote add origin sshUsr@host:RepoUsr/Repo.git
|
||||||
git push -u origin master
|
git push -u origin master
|
||||||
```
|
```
|
||||||
### Push repo local a remota
|
**Push** repo local a remota
|
||||||
**ssh**
|
```sh
|
||||||
`git remote add origin sshUsr@192.8.8.8:88/usrRepo/repo.git`
|
# ssh
|
||||||
|
git remote add origin sshUsr@192.8.8.8:88/usrRepo/repo.git`
|
||||||
|
|
||||||
**https**
|
# https
|
||||||
`git remote add origin https://url:3000/usrRepo/repo.git`
|
git remote add origin https://url:3000/usrRepo/repo.git`
|
||||||
|
|
||||||
`git push -u origin master`
|
|
||||||
|
|
||||||
|
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. .*"
|
Acepta regex, ej. **'*'**
|
||||||
```sh
|
```sh
|
||||||
ignorar_directorio/
|
ignorar_directorio/
|
||||||
dir2
|
dir2/
|
||||||
archivo_a_ignorar.txt
|
archivo_a_ignorar.txt
|
||||||
archivo2
|
archivo2
|
||||||
*.pdf
|
*.pdf
|
||||||
|
Loading…
Reference in New Issue
Block a user