En mi experiencia intermedia en Git me he dado cuenta que vale la pena entender realmente su funcionamiento via consola de comandos. Es algo extraño (y que personalmente aun me cuesta entender), ya que las aplicaciones tienden normalmente a tener interfaces de usuario con metáforas desarrolladas para que el usuario tenga una interacción transparente con el programa.
Es cierto que los sitios que administran repositorios Git (tipo Github o BitBucket) ofrecen muchas herramientas gráficas que permiten entender e incluso realizar tareas de merging, clone, fork, rebasing, entre otras, via Web. Además existen los clientes gráficos (GITK, TortoiseGit) que suelen estar muy cargados de elementos y a veces son incomprensibles, con mil opciones y cajas de chequeo que no se sabe que acción [destructiva] pueda realizar sobre el repositorio. Aun así, estas herramientas no siempre son suficiente y en algunos casos el no entender claramente los principios de Git nos puede llevar a cometer errores (experiencia personal y dedicatoria a mi buen amigo Luis :P) por estos medios.
De todas formas, como Git sigue siendo lo que es, guardando su gran potencial, vale la pena saber cómo trabajar en consola PERO acomodando su entorno de trabajo de la mejor manera para que sea productivo, fácil y eficiente. Aquí van unos datos que me parecen muy útiles para la configuración del entorno Git para trabajo por consola:
Activar colores
Tan simple como ejecutar el comando:
git config —global color.ui true
Añadir un log más limpio
Siguiendo algo que encontré hace unos días enhttps://coderwall.com/p/euwpig, estoy usando un maravilloso log mucho más resumido y claro que el clasico log de git. Para instalarlo:
git config —global alias.lg “log —color —graph —pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ —abbrev-commit —”
y para ejecutarlo:
git lg
git lg -p
Es solo de probar y se entiende la diferencia.
Herramienta externa para merge
No olvidar instalar una herramienta externa para hacer merge. Mis ejemplos clásicos son: WinMerge para Windows y Meld para Linux (seguro que los que Vim dirán que todo se puede en consola …. pero toma su tiempo acostumbrarse). Luego no olvidar asignar ese programa en la configuración de git:
git config —global merge.tool meld
Para seguir trabajando comodamente recomiendo ir de todas formas de la mano de las interfaces gráficas que mencioné previamente. De esta forma se entiende qué hace cada botón y quizas en algunos casos permita ganar tiempo.
Mostrando las entradas con la etiqueta git. Mostrar todas las entradas
Mostrando las entradas con la etiqueta git. Mostrar todas las entradas
01 diciembre, 2013
22 mayo, 2013
Utilizando Git, TortoiseGit y llave SSH en Windows
Luego de unas pruebas que en el inicio parecían sencillas para lograr acceder a un repositorio Git instalado remotamente al cual tengo acceso por medio de claves SSH, llegué a un resultado satisfactorio que -lo admito con algo de alegría- cada vez se parece más al manejo en Linux. Pero bueno, prefiero por explicar un poco comentando primero mi problema. La situación era la siguiente:
Tenía ya instalado TortoiseGit-1.8.3.0 64 bits, Git-1.8.1.2 (al cual le había asignado como cliente SSH a Tortoise) y Putty-0.62 en mi PC, Windows 7. Normalmente el acceso al servidor remoto CVS tan solo necesitaba la instalación de TortoiseCVS y el mismo podía reconocer la versión instalada de Putty para conectarse por SSH al servidor (habiendo cargado previamente la llave con extensión .ppk que se genera con la llave pública y privada) y realizar la identificación del usuario. Todo era de cierta forma transparente. Sin embargo, con TortoiseGit, un cliente adicional de Putty aparece en el juego y además hay un supuesto TortoiseGitPlink que da ciertos problemas como el que me sucedía a mi. Al momento de hacer un git push o un git clone o cualquier cosa que involucrara el servidor aparecía el problema siguiente:
TortoiseGitPLink Fatal Error
Disconnected: No supported authentication methods available (server sent: publickey, gssapi-keyex, gssapi-with-mic)
Solución: Luego de una serie de desinstalaciones e instalaciones seguidas, encontré la instalación que no tiene problemas para obtener un buen espacio de trabajo para Git en Windows usando dichas claves SSH. Voici les étapes! Basado en: http://boredwookie.net/index.php/blog/git-part-2-get-tortoisegit-working-on-windows/
1- Descargar TortoiseGit-1.8.3.0-64bit.msi y Git-1.8.1.2-preview20130201.exe
2- Instalar TortoiseGit normalmente.
3- Ejecutar el instalador de Git. Seleccionar las opciones de ‘Use Git Bash Only’ y de ‘Use OpenSSH’. La segunda viene siendo bien importante.
4- Colocar la llave SSH (id_rsa) en la carpeta .ssh que debería estar localizada en el directorio del usuario, e.g. C:\Users\myUser.ssh\id_rsa (la carpeta .ssh puede ser facilmente creada por línea de comandos lanzando un mkdir .ssh)
5- En la configuración de TortoiseGit, ir a Network, y asignar como ‘SSH Client’: C:\Program Files (x86)\Git\bin\ssh.exe
6- Intenta un clone o un push o cualquier cosa que tenga acceso al servidor. Va a preguntarte tu contraseña de la llave SSH y … now it works!
Nota: Otras posibilidades para acceder a Git son:
- La consola de comandos ‘Git bash’ instalada con Git
- Con Eclipse (personalmente me gusta esta): Import, ’Projects from Git’, URI. Es importante confirmar en Window -> Preferences -> General -> Network Connections -> SSH2 que el cliente SSH está accediendo sin problema a las llaves disponibles en el sistema.
Enjoy it !!
RaC
Tenía ya instalado TortoiseGit-1.8.3.0 64 bits, Git-1.8.1.2 (al cual le había asignado como cliente SSH a Tortoise) y Putty-0.62 en mi PC, Windows 7. Normalmente el acceso al servidor remoto CVS tan solo necesitaba la instalación de TortoiseCVS y el mismo podía reconocer la versión instalada de Putty para conectarse por SSH al servidor (habiendo cargado previamente la llave con extensión .ppk que se genera con la llave pública y privada) y realizar la identificación del usuario. Todo era de cierta forma transparente. Sin embargo, con TortoiseGit, un cliente adicional de Putty aparece en el juego y además hay un supuesto TortoiseGitPlink que da ciertos problemas como el que me sucedía a mi. Al momento de hacer un git push o un git clone o cualquier cosa que involucrara el servidor aparecía el problema siguiente:
TortoiseGitPLink Fatal Error
Disconnected: No supported authentication methods available (server sent: publickey, gssapi-keyex, gssapi-with-mic)
Solución: Luego de una serie de desinstalaciones e instalaciones seguidas, encontré la instalación que no tiene problemas para obtener un buen espacio de trabajo para Git en Windows usando dichas claves SSH. Voici les étapes! Basado en: http://boredwookie.net/index.php/blog/git-part-2-get-tortoisegit-working-on-windows/
1- Descargar TortoiseGit-1.8.3.0-64bit.msi y Git-1.8.1.2-preview20130201.exe
2- Instalar TortoiseGit normalmente.
3- Ejecutar el instalador de Git. Seleccionar las opciones de ‘Use Git Bash Only’ y de ‘Use OpenSSH’. La segunda viene siendo bien importante.
4- Colocar la llave SSH (id_rsa) en la carpeta .ssh que debería estar localizada en el directorio del usuario, e.g. C:\Users\myUser.ssh\id_rsa (la carpeta .ssh puede ser facilmente creada por línea de comandos lanzando un mkdir .ssh)
5- En la configuración de TortoiseGit, ir a Network, y asignar como ‘SSH Client’: C:\Program Files (x86)\Git\bin\ssh.exe
6- Intenta un clone o un push o cualquier cosa que tenga acceso al servidor. Va a preguntarte tu contraseña de la llave SSH y … now it works!
Nota: Otras posibilidades para acceder a Git son:
- La consola de comandos ‘Git bash’ instalada con Git
- Con Eclipse (personalmente me gusta esta): Import, ’Projects from Git’, URI. Es importante confirmar en Window -> Preferences -> General -> Network Connections -> SSH2 que el cliente SSH está accediendo sin problema a las llaves disponibles en el sistema.
Enjoy it !!
RaC