Cómo forzar un git pull y sobrescribir los ficheros locales

A mí me suele pasar que cuando hago un git pull me salen estos mensajes de error:

Esto quiere decir que en la copia local tenemos ficheros modificados sin haber hecho commit, y al hacer un git pull perderíamos esos cambios. Con lo cual, nos insta a hacer commit de esos cambios o a desecharlos si no nos interesan, antes de proceder con el git pull.

En Git no existe un parámetro para forzar a sobrescribir los datos locales que hubiera. Pero sí disponemos de otra forma de conseguir el mismo objetivo:

Esto hará que actualicemos nuestro servidor local de Git con lo que existe en el servidor central, pero sin tocar nada en nuestra copia local.

Y con esto pondremos como copia local la última versión que esté en la rama origin/master (podemos usar cualquier otra rama, por supuesto). Sobrescribiendo todos los ficheros locales.

Obtener el directorio donde reside nuestro shell script en tiempo de ejecución

A menudo necesitamos saber cuál es el directorio en el que reside nuestro shell script, pero no existe ninguna variable ni ninguna llamada que nos lo provea.

Con el siguiente código obtendremos en la variable DIR el directorio de nuestro script:

 

Descargar un solo fichero desde un repositorio Git

En ocasiones es posible que nos encontremos con un serio problema: hago un commit de mi código con varios ficheros, pero luego necesito actualizar un servidor sólo con uno de esos ficheros subidos al repositorio Git. ¿Qué hago?

Podemos tirar por la vía de la ñapa, subiendo manualmente por S/FTP ese fichero al servidor remoto, pero somos profesionales, así que lo descartamos tajantemente y optamos por usar el cliente de Git en el servidor remoto.

Actualizamos nuestro repositorio local con todos los cambios recientes desde el repositorio remoto, sin actualizar el código aún:

Actualizamos nuestro código con el fichero que le indicamos:

Et voilà!