Apuntes git

Commit temprano, commit a menudo, y reza fuerte.

Setup

Presumimos que GIT ya está instalado en tu máquina. En caso contrario, descárgalo desde git-scm.com.

Para empezar a trabajar con GIT necesitas crear un perfil de usuario, y determinar la carpeta donde estará el proyecto a controlar.
no importa si se trata de un proyecto por empezar, o si ya tienes algunos archivos.
Y si además quieres tener un repositorio en la red, debes abrir una cuenta en github, o bitbucket, o cualquiera otra web que ofrezca este servicio

Creación del usuario

Todos los parámetros de GIT se pueden establecer a nivel SYSTEM, GLOBAL o LOCAL.

  • /proyecto/.git/config: configuración local (solo para un proyecto, en su carpeta raíz)
  • ~/.gitconfig: configuración global (para el usuario, en su carpeta personal)
  • /etc/gitconfig: configuración a nivel de sistema
git config --global user.name "tu nombre"
git config --global user.email "tu mail"

También puedes establecer el editor de texto para los commits. Por ejemplo:

git config --global core.editor "code --wait"

Procura escoger un editor ligero. Otras opciones interesantes:

git config --global color.ui auto
git config --global init.defaultBranch main

Esto mejora la legibilidad en la terminal y define el nombre por defecto para la rama principal. Si vas a mantener un repositorio en la nube (como GitHub):

git config --global credential.helper cache

Esto guardará temporalmente tus credenciales en local, evitando tener que ingresarlas cada vez.

Para comprobar el valor actual:

git config --global user.name

Y para cambiarlo:

git config --global user.name "nuevo nombre"

Nota: si planeas sincronizar con GitHub, el nombre y email deben coincidir con los de tu cuenta.

TIP: Si al hacer un commit obtienes el error “identidad de autor desconocido”, prueba a establecer usuario y email localmente:

git config --local user.name "tu nombre"
git config --local user.email "tu mail"

Creación de repositorio local

Para iniciar el repositorio, crea el directorio donde van a estar los archivos (o navega al directorio si ya existen) y ejecuta:

git init

Esto crea una subcarpeta .git con toda la información de control de versiones.
Si ya tienes archivos:

git add .
git commit -m "Primer commit: agregando archivos existentes"

Con add . añadimos todos los archivos al área de staging. Aún no están en el repositorio: eso ocurre al hacer commit. Si quieres revertir los archivos añadidos:

git reset

Esto los quita del staging sin eliminarlos del proyecto. Para un archivo específico:

git reset nombre-del-archivo

Git no controla directorios vacíos, por lo que no aparecerán en git status. Puedes forzar su inclusión creando un archivo vacío, como .gitkeep.

Para excluir archivos o carpetas del control de versiones, crea un archivo .gitignore en la raíz del proyecto. Ejemplo:

*.bak
*.desktop

Este archivo permite expresiones regulares. Usa git status para comprobar el estado del repositorio.

Configuración del repositorio remoto

Veamos cómo mantener una copia sincronizada de nuestro proyecto en GitHub (para Bitbucket u otros, el proceso es muy similar).

Primero, verifica si ya tienes una clave SSH:

ls ~/.ssh/id_rsa.pub

Si no devuelve nada, créala:

ssh-keygen -t rsa -b 4096 -C "email@example.com"

Esto genera dos claves en ~/.ssh/: id_rsa (privada) e id_rsa.pub (pública). Pulsa Enter para usar el nombre por defecto. Puedes dejar la frase de seguridad en blanco si prefieres evitar escribirla cada vez.

Luego copia el contenido de la clave pública:

cat ~/.ssh/id_rsa.pub

Y pégala en GitHub, en "Settings → SSH and GPG keys → New SSH Key". Ponle un nombre descriptivo, como “Portátil personal”.

Finalmente, cambia el origen remoto a SSH:

git remote set-url origin git@github.com:TU-USUARIO/TU-REPO.git

Para probar la conexión:

ssh -T git@github.com

Si todo está bien, recibirás un mensaje de bienvenida.

Notas sobre SSH

SSH es un protocolo para conectarte de forma segura a un servidor remoto. GitHub lo utiliza para validar tu identidad sin que tengas que ingresar usuario y contraseña.

  • Clave pública: se pega en GitHub y sirve como identificador.
  • Clave privada: debe permanecer segura en tu máquina.

Conexión con el repositorio remoto

Primera conexión:

git remote add origin <URL_DEL_REPO>

O para cambiar la URL existente o pasar de HTTPS a SSH:

git remote set-url origin git@github.com:TU-USUARIO/TU-REPO.git

Y para subir tu primer commit al remoto:

git push -u origin main

commit guarda los cambios en el repositorio local. push los envía al remoto.

Es posible que recibas este mensaje en la primera conexión:

The authenticity of host 'github.com (140.82.xxx.xxx)' can't be established.
Are you sure you want to continue connecting (yes/no)?

No te preocupes: es Git confirmando que deseas confiar en GitHub como servidor remoto.

TOP