= git (altran) {{tag>devops cursos git}} ~~NOTOC~~ Ponente: **Daniel Sanchez** == conceptos * HEAD: puntero al commit de trabajo == config * ''%%--system%%'' : /etc/gitconfig * ''git config %%--system%% color.status auto'' * ''%%--global%%'' : ~/.gitconfig * ''%%--local%%'': .git/config -> por cada repositorio === valores * ''core.symlinks'' : a **true** respeta los symlinks, a **false** (default) los trata como ficheros == commit * ''git commit --amend'' : sobrescribe el último commit, editando mensaje -> crea un nuevo commit con los cambios * si nos hemos dejado alguna cosa por añadir/modificar o hemos puesto un mensaje poco significativo o erróneo == checkout * ''git checkout -'' : moverte a la rama anterior (de la que venías) == remote * *upstreams* : remoto por defecto, configurado/ble en cada rama, donde sincronizará * ''git push -u '' : define el *upstream* de la rama (al tiempo que está enviando). Al hacer un ''git pull'' no será necesario especificar == branch (ramas) === listar * ''git branch'' : muestra ramas locales * ''-v'' : verboso * ''-v --merged'' : ramas mergeadas * ''-v --no-merged'' : ramas no mergeadas * ''-a'' : locales + remotas * ''-avv'' : locales + remotas + upstreams * ''git branch -u /'' : establece el upstream === crear * ''git branch '' : crea rama desde la actual * ''git branch '' crea rama desde rama_madre * ''git checkout '' : nos movemos a rama * ''git checkout -b '' : creamos rama a partir de la actual y nos movemos a ella * ''git checkout -b '' === sincronizar * ''git push '' : envía rama al remoto * ''-u'' o ''%%--%%set-upstream'' : y establece el upstream * ''git pull'' : descarga los cambios de la rama actual * ''%%--%%all'' : de todas las ramas * = git fetch + git merge @{u} * ''%%--%%rebase'' : reescribe la historia si esta ha sido reescritura en el remote. Puede evitar problemas de historias no coincidentes ( DPS((Daniel Sanchez Puig)) lo usa por defecto) === borrar git branch -d 'rama' git branch -D 'rama' git push --delete [-d] 'origin' 'rama' git push 'origin' :'rama' git remote prune 'origin' == stash (limbo) [[tech:git:stash|]] == tags [[tech:git:tags|]] == merge [[tech:git:merge|]] == cherry-pick [[tech:git:cherry-pick|]] == revert [[tech:git:revert|]] == reset [[tech:git:reset|]] == rebase [[tech:git:rebase|]] === + info * [[http://cambrico.net/git-control-de-versiones/rebase-en-git]] * [[https://git-scm.com/book/es/v1/Ramificaciones-en-Git-Reorganizando-el-trabajo-realizado]] * [[https://www.solucionex.com/blog/git-merge-o-git-rebase]] == reflog * ''git reflog'' : muestra las acciones realizadas en el repositorio * ''git merge '' : merge commits perdidos * ''git checkout -b '' crea rama con la información del pasado == FLOW * patrón para el nombrado de ramas: **categoria**/**tipo**-**ID** * catetorias: feature, hotfix {{ :info:cursos:altran:pasted:20180731-054836.png }}