Adan Condori C. bio photo

Adan Condori C.

Computer Engineer
Web Page

Email Twitter Facebook Google+ LinkedIn Github Google Scholar

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

git_multiuserflow

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 color
  • git grep la –> donde use la palabra la
  • git grep -n color –> en que lineas use la palabra color
  • git grep -n platzi –> en que lineas use la palabra platzi
  • git grep -c la –> cuantas veces use la palabra la
  • git grep -c paltzi –> cuantas veces use la palabra platzi
  • git 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 equipo
  • git shortlog -sn: Las personas que han hecho ciertos commits
  • git 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 estoy
  • git 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 pc
  • git blame -c blogpost.html: Muestra quien ha hecho cambios en dicho archivo identado
  • git blame --help: Muestra en el navegador el uso del comando
  • git 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 GitHub
  • git 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

  1. git log –oneline ->Te muestra el id commit y el título del commit.
  2. git log –decorate -> Te muestra donde se encuentra el head point en el log.
  3. git log –stat -> Explica el número de líneas que se cambiaron brevemente.
  4. git log -p -> Explica el número de líneas que se cambiaron y te muestra que se cambió en el contenido.
  5. git shortlog -> Indica que commits ha realizado un usuario, mostrando el usuario y el titulo de sus commits.
  6. git log –graph –oneline –decorate
  7. git log –pretty=format:”%cn hizo un commit %h el dia %cd” - Muestra mensajes personalizados de los commits.
  8. git log -3 -> Limitamos el número de commits.
  9. git log –after=“2018-1-2”
  10. git log –after=“today”
  11. git log –after=“2018-1-2” –before=“today” -> Commits para localizar por fechas.
  12. git log –author=“Name Author” - Commits realizados por autor que cumplan exactamente con el nombre.
  13. git log –grep=“INVIE” - Busca los commits que cumplan tal cual está escrito entre las comillas.
  14. git log – index.html -> Busca los commits en un archivo en específico.
  15. git log -S “Por contenido” -> Buscar los commits con el contenido dentro del archivo.
  16. 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