Repositorios GIT

Configuración

Los repos remotos cuelgan en una instancia de gitea alojada en docker y que podemos llegar a ella mediante:

Los repos técnicos están bajo el usuario git

Utilidades git

Instalar el programa tig para facilitar la gestión GIT

Inicialización de un repo

Si el directorio contiene archivos, los conserva.

Generar el entorno inicial


NOMBRE_PROYECTO=[nombre_proyecto]

touch README.md
git init
git checkout -b main
git add .
git commit -m "Primer commit"
git remote add origin http://192.168.1.156:3000/git/$NOMBRE_PROYECTO.git #o bien git.lechuga.eu
git push -u origin main

añadir y hacer commits y push

git add .
git commit -m "Mensaje de commit"
git push -u origin main

Crear un repo vacio

Se hace a través de https://srv.lechuga.eu/git/

con el usuario git

Clonar un repo

Este paso también sirve para la obtención inicial del repo.

En la máquina local hacemos un clone del repo de origen
Si es para un trabajo temporal, extraer en /tmp/

Del repo GITEA


# cambiar el valor de NOMBRE_PROYECTO con el nombre del proyecto a realizar

NOMBRE_PROYECTO=[nombre_proyecto]

cd [raíz de proyectos git]

# ... en la red local y boniato (via wireguard)
git clone http://192.168.1.156:3000/git/$NOMBRE_PROYECTO
 

Push

Cuando hacemos un cambio en los archivos locales y queremos actualizar el repo remoto

NOMBRE_PROYECTO=[nombre_proyecto]

cd raiz_del_proyecto

git remote remove origin    # Si hace falta, nos cargamos el remote acutal
git remote add origin http://192.168.1.156:3000/git/$NOMBRE_PROYECTO

git add .       # Añade los ficheros modificados
git commit -m "Mensaje_de_commit"       # Hace un commit con un comentario (el mensaje es obligatorio)
git push

Pull

Cuando queremos actualizar un repo local con la ultima versión del repo remoto.

cd raiz_del_proyecto
git -c http.sslVerify=false pull

Si hay diferencias entre un repo y otro, cargara el branch y reportará que hay que conciliar las diferencias.

Para la magnitud de modificaciones que manejamos, hacemos la modificación manualmente (con la ayuda tig).

Restaurar la copia local

Atención al umask actual, ya que es el que se utiliza para generar los archivos (git sólo recuerda el exec bit)

cd raiz_del_proyecto
git checkout .

Las siguientes ordenes hacen una especie de git clone pero sin bajar todo de nuevo

git reset
git checkout .
git clean -fdx

Ver diferencias entre el repo local y el remoto

git diff HEAD [nombre fichero]