Guía rápida

Crear un proyecto

Empezar un repositorio recién creado

git clone git@gitlab.com:manuelcillero/proyecto.git
cd proyecto
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Enviar una carpeta ya existente

cd carpeta_existente
git init
git remote add origin git@gitlab.com:manuelcillero/proyecto.git
git add .
git commit -m "Inicia el repositorio"
git push -u origin master

Enviar un repositorio Git existente

cd repositorio_existente
git remote rename origin old-origin
git remote add origin git@gitlab.com:manuelcillero/proyecto.git
git push -u origin --all
git push -u origin --tags

Configuración global de Git

git config --global user.name "Nombre De Usuario"
git config --global user.email "correo@ejemplo.com"

Solución de problemas

Saltos de línea en sistemas Unix y Windows

En sistemas Unix el final de línea se representa con un avance de línea (LF). Y en Windows con un retorno de carro más un avance de línea (CRLF). Esto supone un problema en proyectos desarrollados desde ambas plataformas.

Afortunadamente se puede configurar Git para estos casos. Los desarrolladores que trabajen en Windows podrán convertir automáticamente los CRLF en LF y viceversa usando:

git config core.autocrlf true

Los desarrolladores que trabajen en Linux o Mac sólo tendrán que convertir automáticamente los CRLF en LF en la confirmación de archivos (commit) usando:

git config core.autocrlf input

Y en proyectos desarrollados desde una única plataforma se podrá desactivar esta funcionalidad:

git config core.autocrlf false

Se puede utilizar la opción --global para usar esta configuración en todos los repositorios del equipo.

Aparecen archivos como cambiados sin estarlo

Cuando un repositorio se clona entre máquinas Windows y Linux/Unix pueden aparecer archivos como modificados cuando realmente sólo está detectando permisos diferentes con un mensaje similar a este:

old mode 100755
new mode 100644

Para solucionarlo se le puede indicar a Git que ignore los cambios en los permisos de archivo. Como en otros parámetros, esto puede hacerse:

  1. En la configuración global de Git:
    git config --global core.filemode false
  2. En el archivo de configuración ~/.gitconfig:
    [core]
         filemode = false
  3. En la configuración del repositorio:
    git config core.filemode false

Acceder a los repositorios a través de un proxy

Es posible que sea necesario configurar un servidor proxy si hay problemas para clonar o descargar de un repositorio remoto, o se obtiene un error del tipo Unable to access '...' Couldn't resolve host '...'. Entonces:

git config --global http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port

y/o para https:

git config --global https.proxy http://proxyUsername:proxyPassword@proxy.server.com:port

Combinar dos proyectos Git en una carpeta raíz

Desde la línea de comandos esto es más fácil de lo que puede parecer:

git init .
mv .git .gituno
git init .
mv .git .gitdos

y pueden usarse así:

git --git-dir=.gituno add prueba.txt
git --git-dir=.gitdos commit -m "Prueba"

En un entorno Unix es fácil crear un par de alias para git como:

#!/bin/sh
alias gituno='git --git-dir=.gituno'
alias gitdos='git --git-dir=.gitdos'

El archivo .gitignore también se convierte en un importante aliado para determinar qué ficheros pueden pertenecer a uno u otro repositorio.

Última revisión: 10/07/2020

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *