Inicio » Cursos » Fundamentos de Git Básico

Curso Fundamentos de Git Básico

Lección: 4 ➜ Configuraciones de identidad y mini curso de #Vim | Capitulo 4

Bienvenidos a la lección 4 aun no continuaremos con lo tratado en la lección anterior porque vamos a dar solución al error de la configuración de identidad

Lección 4: Configuraciones de identidad y mini curso de #Vim | Capitulo 4

  • ¿Por qué sale el error de autor desconocido?¿Que son las variables de configuración?
  • ¿Cómo resolver el error de autor desconocido? (git config)
  • ¿Qué pasa cuando intentamos hacer un commit sin mensaje?
  • Mini curso de VIM (modo inserción, modo normal, modo visual)
  • Comando: git log

En la lección anterior se abordó mayormente el tema del ciclo de vida en git para luego terminar la lección con el primer commit; en esta lección no continuaremos con la parte 2 del ciclo de vida, sino que hablaremos de un error muy particular que si es la primera vez que instalas y usas git, cuando intentaste hacer el commit es probable que te haya salido, hablamos del error de la imagen a continuación: 

el error

¿Por qué sale el error de autor desconocido y qué son las variables de configuración?

La razón por la que aparece es que cada commit que hacemos, al momento de enviarse al repositorio local requiere algo así como una firma, para saber quién hizo cada commit, obviamente esta firma sería imposible cambiarla, seria inmutable; se que trabajando solos en nuestros proyectos tiene poco sentido esto de firmar los commits, pero recuerden que git es también una herramienta colaborativa, (gitHub) y que por tanto se requiere saber quien hizo que commit; por todo eso es que Git trae un comando llamado “git config”, que te permite obtener y establecer variables de configuración que controlan el aspecto y funcionamiento de Git, dentro de esas configuraciones existe una referente a tu identidad, justamente necesaria para firmar los commits. Entonces si quieres que no te salga este error de nuevo, debes escribir “git config --global user.name” pero seguido del nombre con el que quieres que git te identifique, de la misma forma, y más importante incluso es necesario un correo entonces escribes “git config --global user.email” tambien seguido de un correo que puede o no existir, no es que git te mande un email de verificación, ni nada de eso, es solo un correo de referencia; por cierto el correo que escribas aquí no tiene que ser el mismo que uses para crear tu cuenta en gitHub, pueden ser diferentes no hay problema, pero ten en cuenta que cada commit que hagas se firmará con el nombre que hayas elegido y eso se verá a futuro en GitHub cuando se revise al autor del commit.

¿Cómo resolver el error de autor desconocido?

git config --global user.name [valor]
git config --global user.email [valor]

Con los dos comandos anteriores el error ya no te saldrá, y ahondando un poco en el comando en si, el comando es “git config” el “global” viene a ser el subcomando/opción que te permite hacer que esta configuración de identidad se escriba (se guarde) en una ubicación específica para que al momento de leerse haya una jerarquía y saber que configuracion esta por encima de otras; global, por ejemplo, está por debajo de local, si tu, luego de ejecutar el comando con global, vuelves a ejecutar el comando con local, esa última configuración de identidad será más importante que la que hiciste con global ¿esto qué significa? que si tu quieres podrias especificar una configuración de identidad para un repositorio, y así solo esa carpeta, solo ese repositorio usará la identidad que hayas especificado con local, mientras que otros repositorios usarán la configuración escrita en global hasta que especifiques una con local, esto ya es un poco avanzado, pero si gustas puedes revisarlo por tu cuenta en la documentación, el comando git config tiene muchos más subcomandos y en la documentación te explican mas a fondo lo de las jerarquías, hay más que sólo local y global (scopes). Luego de ejecutar estos comandos, puedes verificar que todo salió bien con el subcomando list, (abreviado L) como se ve a continuación.

git config -l

¿Qué pasa cuando intentamos hacer un commit sin mensaje?

Hay una forma de ver las configuraciones no en listado sino de forma individual, por ejemplo con el comando “git config --global core.editor” mostramos cual es el editor que usará git, si no nos muestra nada, es porque no hay un editor guardado, por lo que git usará el editor por defecto ¿cuál era? en el video de instalación configuramos ese valor con Vim, git necesita un editor que usará cuando lo requiera, por ejemplo cuando escribimos un commit sin mensaje, y justamente eso es lo que quiero comprobar, veamos qué pasa si hacemos un commit sin un mensaje, para eso edite un archivo con texto de ejemplo (no importa mas adelante lo borraremos), y luego use el comando: “git status” para ver que se detectó el cambio, ahora sigue el comando “git add .”, pero el punto es para agregar todos los cambios (que también nos sirve aqui) pero aprovecho en mostrarte que también puedes agregar archivos individualmente con:

git add [nombreArchivo]

Asi en vez de usar el punto, que envia todo, solo el archivo especificado será mandado a stage, y recien sigue el git commit pero sin el mensaje; lo que ocurre a continuación es que se abrirá vim, un editor de consola que es lanzado por git cada que haces un commit sin mensaje, porque realmente no puedes no ponerle un mensaje, el mensaje es la pista que nosotros le ponemos a nuestro commit, es como su nombre, entonces aprovechando que estamos en un editor, podemos hacer cosas que no podemos en línea de comandos, como hacer un commit, mucho más largo y con saltos de línea, he de aclarar que vim es muy diferente en funcionamiento que Visual Code o que el Sublime text. 

vim

Mini curso de VIM (modo inserción, modo normal, modo visual)

Vim es un editor pensado para consola para el mundo de las líneas de comando, en un momento se darán cuenta de las diferencias, primero miren lo que pone “por favor entra el mensaje para tus cambios que hiciste en este commit, las líneas que empiezan con el hash, (#) van a ser ignoradas y los mensajes vacíos van a abortar el commit” en resumen, lo dicho anteriormente, prohibido enviar un commit sin mensaje; bien, ¿Como funciona vim? lo hace a base de comandos, por ejemplo si quieres escribir puedes presionar la letra (i) que hace referencia al comando insertar, con eso entras al modo de inserción, observa la imagen a continuación, te sale en la parte inferior en que modo estas; en modo inserción ya puedes escribir un mensaje para tu commit con normalidad, y también podemos darle al enter y seguir escribiendo, tal cual como un editor; pero ¿qué pasa si quiero copiar texto de mi portapapeles?, para ello tienes que usar un comando y los comandos están en las letras de tu teclado, pero como te habrás dado cuenta mientras estás en el modo inserción, las letras solo son para tipear contenido y nada más, entonces para salir del modo inserción debes presionar la tecla de escape y entrará en el modo normal, aquí ya puedes hacer uso de comandos; entonces si quiero copiar algo para luego pegarlo aquí, usó la letra (p), pero ojo estas en el modo normal, ten en cuenta que aquí el cursor siempre se pondrá por delante del carácter, no atrás del mismo como sí pasa en el modo inserción, por eso al final parece que no podemos ir más allá, pero en verdad estamos ya al final de la línea solo que el cursor está por delante del carácter ¿y esto por que es asi? porque en el modo normal el cursor se utiliza para navegar y realizar operaciones en el texto, y el último carácter en una línea de texto es el límite para las operaciones que se pueden realizar en esa línea, a diferencia del modo inserción, donde al final de la línea puedes seguir agregando más contenido porque ese no es final definitivo de tus acciones; si notas algo mal al pegar, solo regresa al modo normal y corrígelo, recuerda, tecla (i) para el modo inserción.

Ahora que pasa si es lo otro, ¿como copiar en vim? salimos del modo inserción (escape) y presionas (v) para entrar en el modo visual y desde donde tienes el cursor podrás seleccionar un fragmento que gustes, con las direccionales mueves arriba, abajo, izquierda, derecha y cuando termines usas (y) para copiar, pero ahora quiero pegarlo en otra línea y el modo normal no me deja, entonces (i) (modo inserción), cambias de línea, y de nuevo escape y lo mismo que antes, (p) para pegar, cuesta acostumbrarse, pero tampoco es que lo vayas a hacer a diario; ¿y control z? eso es mucho más fácil, es con la (u), así retrocedemos a gusto, y listo creo que eso es parte de lo que podrías necesitar, quizás aquí tocaría aclarar que vim tiene mas comandos, pero tampoco es que los uses todos para solo escribir el mensaje de un commit. Vim es muy útil para dejar de usar el mouse y otras teclas como las direccionales porque como notaste solo usas letras del teclado, y si eres bueno en taquigrafía esto es una gran ventaja, por ejemplo puedes usar la (h) y la (l) para ir en izquierda y derecha y la (j) y la (k) para ir abajo y a arriba, respectivamente. Si quiero salir de Vim se usa un comando diferente a los que usamos hasta ahora; asegurate de estar en modo normal y entonces, presione “:wq” que vienen de write que significa escribir y quit, salir, (no olvide los dos puntos) eso es todo; ya de vuelta en la consola el commit se habrá hecho.

git log

Comando: git log

Ya para terminar esta lección aprendamos un comando nuevo, ¿como veo todos los commit hechos hasta ahora? se hace con “git log”, si están siguiendo las lecciones en orden tendrán dos commits, esta comando tiene más subcomandos/opciones que veremos en lecciones más adelante, por ahora eso es todo en esta lección, en la siguiente lección regresamos al siglo de vida, con la parte dos. Recuerda que puedes configurar tu git para que abra otro editor, en lugar de Vim, lo cual te lo dejo de tarea, yo personalmente creo que es mejor aprender vim porque aparte de ser el más rápido gracias a su habitad en consola también puede que tarde o temprano te lo topes en tu vida laboral.


306 visitas

Más cursos que pueden interesarte

Más cursos

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023