Git para frontends

Post on 21-Jun-2015

146 views 0 download

Transcript of Git para frontends

GIT PARA FRONTENDS

flujo de trabajo

añadir cambios al HEAD

Área de staging = HEAD = índice

Si no tenemos cambios desde el último commit ni nuevos archivos, se dice que el directorio de trabajo está vacío

$ git status # On branch master nothing to commit (working directory clean)

añadir cambios al HEADLos archivos nuevos siempre deberán ser añadidos explícitamente a la lista de cambios que se quieren commitear

git add “nombre_del_archivo_nuevo”git commit

En cambio, si ya estaban añadidos con anterioridad al HEAD podemos forzar la subida con –a

git commit –a

añadir cambios al HEAD

Para añadir un comentario a tu commit podemos usar la opción –m

git commit -m “Commit message”

Si hemos nos hemos equivocado al escribir el comentario, podemos modificarlo de forma sencilla

git commit --amend -m “Correct message“

subir cambios al repositorio

Tus cambios están ahora en el HEAD de tu copia local. Para enviar estos cambios a tu repositorio remoto ejecuta

git push origin master

Propagar cambios a otras ramas:

cherry-pick

Para hacer un cherry-pick nuestro índice (HEAD) tiene que estar limpio. Nos movemos a la rama destino y ejecutamos

git cherry-pick “id del commit”git push origin master

Opciones:-e (editar el mensaje del commit)-x (añade la línea “cherry picked from commit ...”)

trabajar con ramasCrea una nueva rama llamada "feature_x" y cámbiate a ella, vuelve a la rama master y borra la rama recién creada

git checkout -b feature_xgit checkout mastergit branch -d feature_x

Una rama nueva no estará disponible para los demás a menos que hagas push

git push origin <branch>

actualizar el HEAD

Para actualizar tu repositorio local al commit más nuevo, ejecuta

git pull

Es el equivalente a hacer

git fetch git merge FETCH_HEAD

Opciones--rebase[=false|true|preserve]

fusionar ramas

Para fusionar otra rama a tu rama activa (por ejemplo master), utiliza

git merge <branch>

En caso de haber conflictos han de resolverse a mano y marcarlos como fusionados, opcionalmente se pueden revisar antes

git diff <source_branch> <target_branch>git add <filename>

fusionar ramas

Opciones--no-commit (en caso de fallo no hace el merge)-m <msg>

Resolver conflictos<<<<<<< yours:sample.txt Conflict resolution is hard; let's go shopping. ======= Git makes conflict resolution easy. >>>>>>> theirs:sample.txt

fusionar ramas

Herramientas

git mergetoolgit diffgit log --merge -p <path> (muestra las dif del HEAD seguidas de las de la branch remota)git status

Configurar editor de fusionado

$ git config --global merge.tool opendiff

deshacer cambios

Para eliminar un archivo de la lista de commit

git reset HEAD <file>

Para revertir definitivamente unos cambios

git checkout -- <file>

Deshacer un commit

git revert [hash del commit]

Almacenar cambiosstash

git stash save <message>git list (para saber el nombre de cada stash)git show <stash>git stash pop <stash> (aplica los cambios y borra el stash)git stash appy <stash> (aplica los cambios sin borrar el stash)git stash clear (borra todos los stash)git stash drop <stash> (borra uno determinado)

eliminar y renombrar archivos

Para borrar un archivo, primero hay que borrarlo de la lista de archivos del HEAD y después del entorno de trabajo

$ git rm <nomre_archivo>rm ‘nombre_archivo‘

Podemos utilizar el comando mv para renombrar un archivo

$ git mv file_from file_to

etiquetasCrear una etiqueta

$ git tag -a v1.4 -m 'my version 1.4‘

Listar etiquetas existentes y ver info

$ git tag$ git show v1.4

Compartir etiquetas

$ git push origin v1.5

configuración

Usuariogit config --global user.name “nombre”git config --global user.email “email”

Coloresgit config --global color.status auto git config --global color.branch green

Shortcutsgit config --global alias.st status