uibcdf / Academia

Este repositorio debe ser el punto de partida y encuentro para cualquier investigador o estudiante que quiera comenzar a trabajar con/en la UIBCDF. Si has caído aquí por otro motivo y este material te es útil, eres más que bienvenido a usarlo e interaccionar con nosotros.
Other
6 stars 8 forks source link

Foro Técnico: Git #1

Open dprada opened 5 years ago

dprada commented 5 years ago

Haz uso de este hilo para dudas técnicas y reporte de problemas relacionado con el uso e instalación de git.

dprada commented 5 years ago

Trucos y consejos de configuración y uso

Cómo hacer que el prompt indique la rama activa de cualquier proyecto

La terminal puede indicar el nombre de la rama activa de un proyecto de git en el prompt. Para hacer esto únicamente tienes que editar tu fichero '.bashrc':

vim ~/.bashrc

Localiza la parte en la que se define el contenido, formato y colores del prompt. Algo como:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

Y modifica esas lineas para que se vean de la siguiente manera:

parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi

Ya puedes abrir una nueva terminal para ubicarte en cualquier directorio de tu sistema de ficheros que albergue un proyecto cuyo contenido está controlado y seguido por git. El prompt debe anunciarte el nombre de la rama activa justo antes del símbolo $.

dprada commented 4 years ago

Cómo actuar cuando queremos hacer pull de una rama remota pero hay cambios en su clon local

Hay ocasiones en las que queremos hacer pull de un repositorio remoto pero nos dice que tenemos cambios en nuestra rama que no hemos comprometido (committ) ni reservado (stash). El mensaje que entonces encontramos habitualmente dice algo como:

remote: Enumerating objects: 259, done.
remote: Counting objects: 100% (259/259), done.
remote: Compressing objects: 100% (89/89), done.
remote: Total 259 (delta 180), reused 243 (delta 164), pack-reused 0
Receiving objects: 100% (259/259), 347.90 KiB | 1.19 MiB/s, done.
Resolving deltas: 100% (180/180), completed with 47 local objects.
From github.com:uibcdf/MolModMT
   92bb813..12615af  master     -> origin/master
Updating 0d087f3..12615af
error: Your local changes to the following files would be overwritten by merge:
    docs/_build/.doctrees/Installation.doctree
    docs/_build/.doctrees/api/index.doctree
    docs/_build/.doctrees/environment.pickle
    docs/_build/.doctrees/index.doctree
        ...
    docs/_build/api/index.html
    docs/_build/genindex.html
    docs/_build/index.html
    docs/_build/search.html
    docs/index.rst
Please commit your changes or stash them before you merge.
Aborting

En ese caso, si queremos prescindir de nuestros cambios y traer los cambios que aparecen en el repositorio remoto podemos hacer:

git stash save
git pull
git stash drop

Si por el contrario queremos mantener los cambios que hicimos e incorporarlos de nuevo tras la implementación de los cambios en el repositorio remoto, podemos hacer:

git stash save
git pull
git stash pop