Notes Git (Spanish)
Configuración de Git
Primer paso: Generar tus llaves SSH. Recuerda que es muy buena idea proteger tu llave privada con una contraseña.
ssh-keygen -t rsa -b 4096 -C "youremail@example.com"
Segundo paso: Terminar de configurar nuestro sistema.
En Windows y Linux:
# Encender el "servidor" de llaves SSH de tu computadora:
eval $(ssh-agent -s)
# Añadir tu llave SSH a este "servidor":
ssh-add ruta-donde-guardaste-tu-llave-privada
En Mac:
# Encender el "servidor" de llaves SSH de tu computadora:
eval "$(ssh-agent -s)"
# Si usas una versión de OSX superior a Mac Sierra (v10.12)
# debes crear o modificar un archivo "config" en la carpeta
# de tu usuario con el siguiente contenido (ten cuidado con
# las mayúsculas):
Host *
IPQoS=throughput ## this line is optional in diferents version on mac
AddKeysToAgent yes
UseKeychain yes
IdentityFile ruta-donde-guardaste-tu-llave-privada
# Añadir tu llave SSH al "servidor" de llaves SSH de tu
# computadora (en caso de error puedes ejecutar este
# mismo comando pero sin el argumento -K):
ssh-add -K ruta-donde-guardaste-tu-llave-privada
Ejemplo
Usando git
Comandos de ayuda
Como volver atrás después de hacer un git add .
git add . // or git add name_file
luego borramos los cambios desde el staging
git rm name_file
git rm --cached name_file
Como comparar el historial de un archivo modificado
git log
git diff hash1 hash2
Como volver commit anterior
git reset hash --hard
Mostrar todos los log y diferencias
git log --stat
Crear alias para mostrar gráfico en consola
arbolito="git log --all --graph --decorate --oneline"
Manejo de Tags
# Creación de tagg
git tag -a nametag -m "mensaje personalizado referente del tag" hashcommit
# Sube todos los tags creados
git push origin --tags
# Borra Tags locales
git tag -d nametag
# Borrar Tags de los repositorios remotos
git push origin :refs/tags/tagName
Delete Tag
git tag -d
Buscar palabras en archivos y commit
git grep color
–> use la palabra colorgit grep la
–> donde use la palabra lagit grep -n color
–> en que lineas use la palabra colorgit grep -n platzi
–> en que lineas use la palabra platzigit grep -c la
–> cuantas veces use la palabra lagit grep -c paltzi
–> cuantas veces use la palabra platzigit grep -c “<p>”
–> cuantas veces use la etiqueta <p>git log-S “cabecera”
–> cuantas veces use la palabra cabecera en todos los commits.grep
–> para los archivos`log
-> para los commits.
Comandos colaborativos
git shortlog
: Ver cuantos commits a hecho los miembros del equipogit shortlog -sn
: Las personas que han hecho ciertos commitsgit shortlog -sn --all
: Todos los commits (también los borrados)git shortlog -sn --all --no-merges
: muestra las estadisticas de los comigs del repositorio donde estoygit config --global alias.stats “shortlog -sn --all --no-merges”
: configura el comando “shortlog -sn –all –no-merges” en un Alias en las configuraciones globales de git del pcgit blame -c blogpost.html
: Muestra quien ha hecho cambios en dicho archivo identadogit blame --help
: Muestra en el navegador el uso del comandogit blame archivo -L 35, 60 -c
: Muestra quien escribio el codigo con informacion de la linea 35 a la 60, EJ:git blame css/estilos.css -L 35, 60 -c
git branch -r
: Muestra las Ramas remotas de GitHubgit branch -a
: Muestra todas las Ramas del repo y remotas de GitHub
Estados del archivos
Untracked -> staging -> repository local -> remote
Migrar repositorio
Mover contenido de repositorio Git a otro repositorio conservando el Historia
git clone
cd go-directore
git branch -a // To see a list of the different branches
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
git remote rm origin
git remote add origin <url to NEW repo>
git push origin --all
git push --tags
Creacion de Alias
Creando alias:
git confing --global alias.<alias> '<texto>'
Por ejemplo:
git config --global alias.lod 'log --oneline --decorate --color'
git config --global alias.lodag 'log --oneline --decorate --all --graph'
Listar alias:
git config --global --get-regexp alias
Eliminar un alias:
git config --global --unset alias.<alias>
Por ejemplo:
git config --global --unset alias.lodag
More Command
- git log –oneline ->Te muestra el id commit y el título del commit.
- git log –decorate -> Te muestra donde se encuentra el head point en el log.
- git log –stat -> Explica el número de líneas que se cambiaron brevemente.
- git log -p -> Explica el número de líneas que se cambiaron y te muestra que se cambió en el contenido.
- git shortlog -> Indica que commits ha realizado un usuario, mostrando el usuario y el titulo de sus commits.
- git log –graph –oneline –decorate
- git log –pretty=format:”%cn hizo un commit %h el dia %cd” - Muestra mensajes personalizados de los commits.
- git log -3 -> Limitamos el número de commits.
- git log –after=“2018-1-2”
- git log –after=“today”
- git log –after=“2018-1-2” –before=“today” -> Commits para localizar por fechas.
- git log –author=“Name Author” - Commits realizados por autor que cumplan exactamente con el nombre.
- git log –grep=“INVIE” - Busca los commits que cumplan tal cual está escrito entre las comillas.
- git log – index.html -> Busca los commits en un archivo en específico.
- git log -S “Por contenido” -> Buscar los commits con el contenido dentro del archivo.
- git log > log.txt -> guardar los logs en un archivo txt
Referencias
- https://platzi.com/clases/git-github/
- https://ndpsoftware.com/git-cheatsheet.html#loc=remote_repo