Skip to content
Mart edited this page Oct 10, 2015 · 1 revision

Tutoriales y material

IDEs para Git en Ubuntu (Por defecto en Git ya viene gitk):

Uso de branches, Git-Flow:

Cuestiones varias de uso

Comandos Git usados mas frecuentemente:

  • Crear un repositorio nuevo (pararse en la carpeta raíz del proyecto) git init

  • Clona un repositorio git clone username@host:/path/to/repository

  • Agregar URL remoto asignando el Alias “origin” git remote add origin (https://...proyecto.git)

  • Muestra el árbol de estados git status

  • Muestra los logs de commit. La segunda opción muestra una línea por commit git log git log --pretty=oneline

  • Agrega archivos nuevos al Index También registra los que tuvieron modificaciones Y quita los archivos que fueron borrados La segunda línea revisa todo el directorio completo (tiene un punto al final) git add -A <archivo> git add -A .

  • Para revertir lo agregado con git add. Solo quita el archivo del Index git rm --cached <archivo>

  • Guarda los cambios en el repositorio git commit -m "Mensaje del commit"

  • Actualiza remotamente las referencias locales de la rama “master” al remoto “origin” git push origin master

  • Actualiza remotamente las referencias locales al remoto “origin” “--all” Incluye a todas las ramas. OJO: No borra las ramas remotas “-u” Agrega upstream (tracking) a los branches que hicieron push correctamente git push --all origin -u

  • Actualiza remotamente todas las etiquetas pendientes de actualizar git push origin --tags

  • Borra la rama remota git push origin --delete <branchName>

  • Borra todas las ramas remotas que no existen en el repositorio local git push --prune origin

  • Trae las actualizaciones remotas al repositorio local de todas los branches locales OJO: Solo trae actualizaciones de branches que existen en el local En términos simples git pull equivale a git fetch + git merge git pull --all

  • Trae al local un branch remoto nuevo, poniéndole el mismo nombre con el que ya viene git checkout --track origin/branch

  • Muestra todos los branches (locales y remotos) git branch -a

  • Fusiona la rama activa con la rama <branch_xy> git merge <branch_xy>

  • Reviso la diferencias de archivos en casos de conflicto entre git diff <branch_origen> <branch_objetivo>

  • Crea una nueva rama llamada <nuevo_branch> y se pasa a ésta Saliendo desde la rama llamada <branch_desde> Es lo mismo que hacer git branch + git checkout git checkout -b <nuevo_branch> <branch_desde>

  • Crea una etiqueta “v1.4” con el comentario “'versión 1.4” al commit actual La segunda opción agrega el tag al commit identificado con el hash 9fceb02 git tag -a v1.4 -m 'v 0.0' git tag -a v1.4 -m 'version 1.4' 9fceb02

  • Borra el tag “v0.0” localmente, con la 2da línea actualiza el borrado remotamente git tag -d v0.0 git push origin :refs/tags/v0.0

Feature Branch típico (inicio y merge con el develop):

  1. Creo el feature branch desde develop git checkout -b myfeature develop
  2. Trabajo con el branch... git add... git commit...
  3. Hago el merge del feature branch con el develop git checkout develop git merge --no-ff myfeature
  4. Borro el feature branch una vez que todos los cambios fueron pasados al develop git branch -d myfeature
  5. Actualizo el develop remotamente git push origin develop

Comandos Git no usados frecuentemente (pero útiles):

  • Para ver cual remote pertenece a cada url git remote -v

  • Pasar a URL remoto SSH git remote set-url origin git@github.com:martineq/tp0_7552.git

  • Pasar a URL remoto HTTPS git remote set-url origin https://github.com/martineq/tp0_7552.git

  • Para que guarde el user y pass cuando se conecta por HTTPS git config credential.helper store

  • Stash te "esconde" las modificaciones de tu working directory para que no las vea otro branch git stash pop

  • Caso: Quiero pisar el branch master con todo lo que tiene develop git checkout develop git merge -s ours master git checkout master git merge develop

  • Equivalencias de git pull git pull = git fetch + git merge || git pull --rebase = git fetch + git rebase

  • Diferencia entre merge y rebase: http://stackoverflow.com/questions/16666089/whats-the-difference-between-git-merge-and-git-rebase/16666418#16666418

Alias para Git: