edicion
parent
6823431e04
commit
5f3e37f4b1
@ -33,18 +33,19 @@ add-apt-repository ppa:git-core/ppa
|
||||
```bash
|
||||
git --version
|
||||
|
||||
git config --global user.name "Nombre"
|
||||
git config --global user.mail "Mail Git"
|
||||
git config --global user.name "nombre"
|
||||
git config --global user.mail "mail"
|
||||
```
|
||||
|
||||
```bash
|
||||
# Lista de configuracion global
|
||||
# Lista de configuracion
|
||||
git config --global --list
|
||||
git config --local --list
|
||||
|
||||
# Ayuda
|
||||
git help (comando)
|
||||
```
|
||||
# Secuencia tipica de uso:
|
||||
# Secuencia tipica de uso:
|
||||
## Crear repositorio en directorio actual
|
||||
```bash
|
||||
git init
|
||||
@ -53,51 +54,55 @@ git add -A (Agregar todo a confirmacion)
|
||||
|
||||
# Remove a file from the workspace and the index
|
||||
git rm file(s)...
|
||||
|
||||
git commit -m "Mensaje"
|
||||
git commit -m "mensaje"
|
||||
|
||||
# add -A + Commit
|
||||
git commit -am "Mensaje"
|
||||
|
||||
git commit -am "mensaje"
|
||||
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
|
||||
`git status`
|
||||
|
||||
`git log`
|
||||
|
||||
`git config --global alias.[alias] "comando"` Alias
|
||||
|
||||
`git branches --list`
|
||||
|
||||
```sh
|
||||
git status
|
||||
git log
|
||||
git config --global alias.[alias] "comando"`
|
||||
git branches --list
|
||||
```
|
||||
## Git Reset
|
||||
#### RESET
|
||||
##### deja el proyecto en el stado del commit indicado
|
||||
##### ***--hard --mixed --soft***
|
||||
**RESET** : deja el proyecto en el stado del commit indicado
|
||||
* ***--hard***
|
||||
* ***--mixed***
|
||||
* ***--soft***
|
||||
|
||||
|
||||
#### HARD:
|
||||
##### Working Dir = Staging Area = Repository
|
||||
`git reset --hard [SHA commit]`
|
||||
***Working Dir = Staging Area = Repository***
|
||||
```sh
|
||||
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]`
|
||||
##### ~Despues de un cambio:~ add luego commit.
|
||||
#### MIXED:
|
||||
***Staging Area = Repository***
|
||||
Working Dir a la espera de la iteracion basica (add, commit)
|
||||
|
||||
#### SOFT:
|
||||
No afecta el working area?
|
||||
`git reset --soft [SHA commit]`
|
||||
##### Solo hay q hacer el commit para aplicar el cambio
|
||||
Sirve para encapsular, por ejemplo: restear 5 commits para integrarlos en un solo commit
|
||||
|
||||
### CHECKOUT
|
||||
##### "Ir a una version, deatached mode, permite generar una nueva rama(branch) a partir de este"
|
||||
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:
|
||||
No afecta el working area?
|
||||
```sh
|
||||
git reset --soft [SHA commit]
|
||||
# solo hay q hacer el commit para aplicar el cambio
|
||||
```
|
||||
|
||||
### CHECKOUT
|
||||
**Ir al modo 'deatached', permite generar una nueva rama(branch) a partir de este**
|
||||
```bash
|
||||
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,
|
||||
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:
|
||||
**git switch -**
|
||||
git switch -
|
||||
```
|
||||
##### Cada ***commit tiene un parent*** .. "de que 'punto' viene"
|
||||
***Cada commit tiene un parent*** .. de que 'punto' viene
|
||||
|
||||
## BRANCHES
|
||||
------
|
||||
|
||||
##### linea alterna del repositorio
|
||||
**Ramas o Lineas alternativas del repositorio**
|
||||
|
||||
Ver ramas: `git branches --list`
|
||||
|
||||
@ -134,59 +138,66 @@ 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"`
|
||||
```sh
|
||||
git commit -am "nuevo_commit"
|
||||
|
||||
##### Omitir preparación archivo
|
||||
`git checkout -- "archivo"`
|
||||
git checkout master # volver a la rama principal
|
||||
|
||||
### FUSIONAR ramas
|
||||
##### (fusiona desde la rama actual, debes posicionarte en master)
|
||||
git checkout "rama" # mover HEAD entre ramas
|
||||
|
||||
# omitir preparación archivo
|
||||
git checkout -- "archivo"
|
||||
|
||||
```
|
||||
|
||||
### Fusionar ramas / Merge
|
||||
***(fusiona desde la rama actual, debes posicionarte en master)***
|
||||
`git merge "rama"`
|
||||
|
||||
#### SOLUCIONES de CONFLICTOS de FUSIONES:
|
||||
##### -Fast-Forward -Manual Merge
|
||||
**SOLUCIONES de CONFLICTOS de FUSIONES:**
|
||||
* **-Fast-Forward**
|
||||
* **-Manual Merge**
|
||||
|
||||
|
||||
### REBASE
|
||||
##### (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
|
||||
***(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"
|
||||
```
|
||||
----
|
||||
|
||||
## LOG
|
||||
|
||||
**Log STAT** explica con detalle nro. de lineas cambiadas
|
||||
```sh
|
||||
git log --stat
|
||||
|
||||
# log con DIFF
|
||||
git log -p
|
||||
|
||||
# log por author
|
||||
git shortlog
|
||||
|
||||
# otros
|
||||
git log -2 # ver los últimos 2 commits
|
||||
```
|
||||
## 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:
|
||||
**Filtros**
|
||||
```bash
|
||||
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
|
||||
# busqueda por contenido de archivos
|
||||
# muestra en que commit se creó
|
||||
git log -S"búsqueda"
|
||||
```
|
||||
#### Log personalizado y alias
|
||||
```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"
|
||||
|
||||
@ -194,7 +205,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
|
||||
Guarda cambios en un estado temporal, no aplica los cambios inmediatamente
|
||||
```bash
|
||||
git stash
|
||||
git stash list
|
||||
@ -204,21 +215,22 @@ git stash apply
|
||||
`git help fetch`
|
||||
|
||||
### Git diff
|
||||
##### muestra las diferencias hasta el punto en el este desde el commit indicado
|
||||
`git diff 'commit id'
|
||||
Muestra las diferencias desde el commit indicado hasta el punto en el que se encuentra el head
|
||||
`git diff 'commit id'`
|
||||
|
||||
### Clonar Repositorio
|
||||
`git clone [repos ssh o https]`
|
||||
|
||||
-----
|
||||
|
||||
## 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 -t rsa -b 4096 -C "mail@git"
|
||||
@ -231,7 +243,7 @@ ssh-add .ssh/[key_rsa]
|
||||
cat .ssh/[key_rsa.pub]
|
||||
```
|
||||
|
||||
### Manejo de Identidades git
|
||||
### Manejo de identidades ssh
|
||||
|
||||
- Configuracion por archivo **~/.ssh/config**
|
||||
```bash
|
||||
@ -250,55 +262,55 @@ cat .ssh/[key_rsa.pub]
|
||||
```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"
|
||||
|
||||
# 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
|
||||
|
||||
### Clonar repositorio (o https):
|
||||
**Clonar** repositorio (ssh 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."...
|
||||
|
||||
git config --local core.sshCommand "ssh -i ~/.ssh/id_rsa_example -F /dev/null"
|
||||
|
||||
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
|
||||
git remote -v
|
||||
git remote rm origin
|
||||
```
|
||||
|
||||
### Crear nuevo repositorio remoto
|
||||
**Crear** nuevo repositorio remoto
|
||||
```sh
|
||||
touch README.md
|
||||
git init
|
||||
|
||||
#git config....
|
||||
git add README.md
|
||||
git commit -m "first commit"
|
||||
git remote add origin sshUsr@host:RepoUsr/Repo.git
|
||||
git push -u origin master
|
||||
```
|
||||
### Push repo local a remota
|
||||
**ssh**
|
||||
`git remote add origin sshUsr@192.8.8.8:88/usrRepo/repo.git`
|
||||
**Push** repo local a remota
|
||||
```sh
|
||||
# ssh
|
||||
git remote add origin sshUsr@192.8.8.8:88/usrRepo/repo.git`
|
||||
|
||||
**https**
|
||||
`git remote add origin https://url:3000/usrRepo/repo.git`
|
||||
|
||||
`git push -u origin master`
|
||||
# https
|
||||
git remote add origin https://url:3000/usrRepo/repo.git`
|
||||
|
||||
git push -u origin master
|
||||
```
|
||||
|
||||
## Git ignore
|
||||
"Crear archivo .gitignore añadir archivo/carpeta/extension para ignorarlos
|
||||
no guardar archivos sensibles, regex, ej. .*"
|
||||
Crear archivo **.gitignore**, añadir *archivo/carpeta/extension* para ignorarlos.
|
||||
Acepta regex, ej. **'*'**
|
||||
```sh
|
||||
ignorar_directorio/
|
||||
dir2
|
||||
dir2/
|
||||
archivo_a_ignorar.txt
|
||||
archivo2
|
||||
*.pdf
|
||||
|
Loading…
Reference in New Issue
Block a user