Aprender Git no fue memorizar comandos. Fue cambiar mi manera de pensar el error, la historia y la posibilidad de volver atrás.
Durante buena parte de mi vida informática tuve una certeza bastante tranquilizadora: si algo salía mal, existía Ctrl+Z.
No siempre estuvo ahí, claro. Hubo épocas de diskettes, archivos que desaparecían y errores que enseñaban, a veces de manera bastante poco amable, la importancia de hacer una copia antes de tocar nada.
Pero nos acostumbramos.
Escribís algo y no te gusta: Ctrl+Z. Movés una imagen donde no corresponde: Ctrl+Z. Borrás algo por error: Ctrl+Z.
Con los años, Deshacer dejó de ser una función del programa y pasó a ser casi una forma de pensar.
Hasta que empecé a trabajar con Git.
Al principio mi relación con Git fue bastante sencilla. Yo hacía algo. Algo salía mal. Y quería deshacerlo.
No parecía una pretensión exagerada.
El problema era que Git siempre parecía necesitar información adicional.
¿El archivo fue modificado? ¿Hiciste commit? ¿Lo subiste? ¿Querés conservar los cambios? ¿Querés descartarlos? ¿Querés volver a una versión anterior?
Y mi respuesta mental era mucho menos sofisticada: no sé, lo que quiero es que quede como estaba hace diez minutos.
Ahí empezó nuestra relación. No diría que fue amor a primera vista.
Tardé un poco en entender que estaba intentando usar una herramienta nueva con una idea vieja.
Para mí, deshacer significaba eliminar el error y regresar al instante anterior. Git me proponía otra lógica.
Cada cambio podía formar parte de una historia. Podía comparar qué había hecho, guardar un estado, volver a otro, crear un camino diferente o incluso revertir una decisión sin fingir que esa decisión nunca había existido.
Y ahí ocurrió algo que me gusta mucho cuando aprendo tecnología:
Dejé de aprender un comando y entendí una idea.
Git no estaba preguntándome tantas cosas para molestarme.
Estaba preguntándome qué quería hacer con la historia.
Esto me resultó especialmente divertido porque mi historia con las computadoras está bastante lejos de ser impecable.
He perdido información. He roto cosas. He aprendido alguna que otra lección sobre backups de la peor manera posible.
Durante muchos años, parte de volverse mejor trabajando con tecnología consistía precisamente en desarrollar mecanismos para protegerse de uno mismo. Guardar. Duplicar. Hacer una copia. Y, ante la duda, hacer otra.
Git agregó algo diferente a esa colección de defensas. No solamente protege el resultado. Conserva el recorrido.
Eso parece una diferencia pequeña hasta que empezás a trabajar con proyectos que cambian todos los días.
Creo que esa fue la idea que finalmente me reconcilió con Git.
Volver atrás y borrar el pasado no son necesariamente la misma cosa.
Ctrl+Z es maravilloso porque hace desaparecer nuestra última acción. Git, en cambio, puede permitirnos reconocer que esa acción ocurrió y decidir qué hacemos después con ella.
Hay algo extrañamente humano en eso.
Durante años pensé que la mejor tecnología era la que me permitía corregir un error como si nunca hubiera sucedido. Ahora trabajo con una que me dice: sucedió, está bien, veamos desde dónde querés continuar.
Una de las cosas más interesantes de seguir aprendiendo tecnología es descubrir que no solamente incorporamos herramientas nuevas. También tenemos que abandonar algunas costumbres viejas.
A veces eso cuesta más que aprender la herramienta.
Podría memorizar veinte comandos de Git y seguir sin entender Git.
El verdadero cambio apareció cuando dejé de preguntarme “¿cómo deshago esto?” y empecé a preguntarme “¿a qué estado quiero volver y qué quiero conservar del camino?”
Parece una diferencia pequeña. Para mí no lo fue.
Porque después de muchos años frente a una computadora descubrí que todavía podía cambiar mi manera de pensar frente a ella. Y probablemente sea esa una de las razones por las que sigo disfrutando aprender tecnología.
Las herramientas nuevas no solamente sirven para hacer cosas nuevas. De vez en cuando también consiguen algo bastante más difícil: obligarnos a pensar de nuevo cosas que creíamos que ya sabíamos.
Seguir leyendo
Notas y reflexiones
Apuntes sobre datos, tecnología, proyectos y aprendizaje continuo — la misma bitácora abierta donde vive esta nota.
Ver todas las notas →