• Saltar al contenido principal
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Cachivaches
  • Ubuntu
  • Servicios en la nube
  • Raspberry Pi
  • ¿Preguntas?
    • ¿Quieres hablar?

Kacharreando

Kacharreando desde antes que montara este blog

Hosting Estupendos baratos

Cómo utilizar GIT para tener un control de versiones de tus documentos

julio 8, 2021 Deja un comentario

Hoy vamos a hablar de GIT, un sistema de control de versiones distribuido y opensource que nos permitirá tener todo lo que programemos de una manera ordenada y sobre todo que podamos añadir modificaciones y mejora de manera incremental.

Con esto conseguiremos tener nuestro código de programación organizado, sabiendo los cambios que hemos hecho y por lo tanto poder volver atrás y lo que me parece más importante, olvidarnos de tener decenas de ficheros en nuestro ordenador con numeritos para ir definiendo los cambios que vamos haciendo.

GIT tiene una finalidad parecida a SVN o Mercurial, pero que se ha puesto muy de moda gracias a GitHub y su facilidad de uso, y que tiene una empresa detrás que lo soporta.

Github también ha permitido utilizar GIT para tener nuestras páginas en Html disponibles y accesibles para todo el mundo por lo que esto también ha hecho ganar adeptos a la causa.

¿Es para ti GIT?

Pues aunque no programes como si fueras a mandar un satélite a marte, en muchas cosas mundanas te va facilitar mucho la vida, y gracias a GitHub podrás aprovecharte de tener tus apuntes en html disponibles en internet.

También podrás escribir textos y llevar un control de los cambios que has hecho, con lo que si a eso le sumamos que puedes escribir en Markdown o Latex se amplian mucho las posibilidades que te proporciona.

Así que supongo que si lees este blog, seguramente ya estarás haciendo pinitos con la consola y con Ubuntu, por lo que vas a sacarle partido a este artículo.

Configurando Git y github

Esta configuración es básica pero suficiente para trabajar con git en consola y tener nuestra cuenta de github asociada.

Lo primero que te recomiendo es que te crees una cuenta de Github, la utilizaremos en este artículo.

Recuerda cambiar TU NOMBRE y TU@EMAIL.com por tus propios datos que diste para registrar tu cuenta de github.

Con estos comandos configuras tu cuenta:

git config --global user.name "TU NOMBRE"
git config --global user.email "TU@EMAIL.com"

También configuraremos algunos colores para que sea más cómodo trabajar con github en la consola:

git config --global color.ui true
git config --global color.status auto
git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto

Con esto conseguimos que, si nuestro terminal lo permite, Git nos va a colorear ciertas cosas, con lo que será más fácil leer la información que nos proporcione.

Creación de nuestro primer repositorio en GitHub

Aunque yo recomiendo trabajar con la consola por facilidad y efectividad en tus tareas, vamos que se adelanta un montón, si no quieres puedes utilizar entornos gráficos para gestionar GIT.

Para instalar GIT, simplemente ejecutamos el siguiente comando: sudo apt install git

Una vez tenemos instalado GIT, solo necesitamos tener un servidor con un repositorio para tener nuestros archivos, en este caso voy a utilizar GitHub, aunque si quieres puedes utilizar otro o instalar el tuyo propio.

Github te permite de forma gratuita tener tus propios proyectos de forma pública, con lo que cualquiera puede ver el código para descargarlo hacer un fork, o lo que sea.

Así que una vez tienes una cuenta, solo necesitas crear un repositorio nuevo.

Nuevo repositorio creado en github

Una vez que rellenemos los datos del repositorio lo tendremos listo para poder trabajar con el. Con un nombre, la licencia del proyecto y una descripción para que nos puedan encontrar en el caso de que nos interese que vean lo que hacemos, será suficiente.

Nombre del repositorio en github para nuestro proyecto

Con esto ya tendríamos preparado el repositorio para usarlo, pero antes de probar los comandos de uso, te voy a explicar algunos conceptos del estado de los archivos antes de subirlos a github.

Estado de los archivos

Un archivo puede estar en varios estados:

  • Descontrolado. Se trata de un archivo que está en el directorio donde estás haciendo tu control de versiones, pero que no está sometido al Git.
  • Controlado. En este caso el archivo si que está supervisado por Git. Dentro de este estado, nos podemos encontrar tres posibilides:
    • Modificado. Aquí, hemos realizado cambios sobre el archivo, sin embargo, estos cambios no están registrados. Puedes volver a modificarlos y cambiarlos, sin embargo, todos estos cambios se perderán.
    • Archivado temporal. En este caso, los cambios se registran, y es posible volver a un estado anterior de los cambios realizados. Este archivado es de solo local, es decir, estos cambios no se subirán al repositorio central.
    • Archivado confirmado. Este es un paso mas del anterior. Los cambios incluidos se subirán al repositorio central.
    • Actualizado. En este caso el archivo no ha sufrido ningún tipo de modificación.

Así que para subir un archivo a nuestro repositorio Prueba el proceso a seguir es:

  1. modificarlo.
  2. archivarlo de forma temporal
  3. confirmar los cambios
  4. Por último lo podemos subir.

Aunque te parezca muy farragoso, tiene su sentido ya que al programar no siempre vas a subir lo último que hayas escrito.

Para nuestro repositorio Prueba vamos a crear el directorio de trabajo en nuestro ordenador local y los archivos necesarios:

mkdir Prueba
cd Prueba
git init
echo "Este proyecto va ser un Kacharreo" > README

Con el comando anterior de git hemos creado el directorio de trabajo en nuestro ordenador local, inicializando los ficheros necesarios para que GIT funcione y también hemos creado un fichero README con una explicación del proyecto para que el repositorio tenga algo dentro.

Los comandos para subir un archivo al repositorio Prueba serían:

  • Tanto para pasar de descontrolado a controlado, como para pasar de modificado a archivado temporal utilizaremos git add archivo.txt.
  • Para confirmar los cambios git commit -m "confirmados los cambios".
  • Para subir los cambios al repositorio central git push -u origin master.

Una vez que sabemos los comandos, vamos a hacer nuestro primer commit del archivo README. Cada commit que hagamos, es una copia que estamos mandando al repositorio de los cambios realizados, y en cualquier momento podemos volver a una de estas copias, además de ver los cambios de nuestro proyecto.

git add README
git commit -m 'Primer commit de mi gran proyecto'

Solo nos queda decirle a nuestra copia local, cual es el lugar donde debe alojarse, o dicho de otra forma, que repositorio remoto van a estar alojados los archivos y donde se guardarán los cambios, en nuestro caso será Github.

El comando push realiza todos estos cambios enviándolos al servidor, y solo tenemos que indicarle el repositorio donde se va a alojar (luego no será necesario indicarle esto):

git remote add origin git@github.com:tuusuario/Prueba.git
git push origin master

Si esto nos da el siguiente error:

git@github.com: Permission denied (publickey).
fatal: No se pudo leer del repositorio remoto.
​
Por favor asegúrese que tiene los permisos de acceso correctos
y que el repositorio existe.

Lo que ocurre es que no hemos añadido una clave pública nuestra a github, por lo que el proceso es el siguiente:

sudo apt-get install xclip
ssh-keygen -t rsa -b 4096 -C "TU_EMAIL@EMAIL.com"
#Te pedirá clave y la dejamos en blanco
ssh-add ~/.ssh/id_rsa
xclip -o -sel clip < ~/.ssh/id_rsa.pub
xclip -selection clipboard < ~/.ssh/id_rsa.pub
ssh -vT git@github.com

Una vez generada la clave SSH solo me queda añadirla a mi cuenta de Github. Simplemente copio y pego la salida del comando en este enlace: cat ~/.ssh/id_rsa.pub

Una vez he hecho esto, puedo comprobar si funcionó con este comando: ssh -T git@github.com

El mensaje que recibí y te aparecerá a ti también: Hi excid3! You've successfully authenticated, but GitHub does not provide shell access.

Explicado de manera sencilla en github que yo me suelo liarme mucho, cómo generar una clave ssh y añadir una nueva clave ssh a github

Ahora ya podríamos hacer git push origin master, y tendríamos nuestro proyecto iniciado y disponible en Github.

Otros comandos que son interesantes de Git:

  • Si quieres actualizar tu archivos locales con el repositorio central, tan solo tienes que ejecutar git pull. Ahora vamos a realizar los pasos inversos:
  • Para pasar un fichero que esté archivado temporalmente, tenemos que ejecutar git reset archivo.txt.
  • Si lo que queremos es pasar de un archivo del estado confirmado al estado temporal ejecutaremos git reset HEAD~

Por último es interesante tener en mente la orden git status, que nos permite conocer en cualquier momento el estado de nuestro repositorio.

Con todo lo visto, vamos a cambiar algunos ficheros, y volver a hacer commit y push. Como tenemos ya listo nuestro repositorio local, ya no es necesario indicar el alias con el que llamamos al proyecto ya que queda almacenado en la copia local.

touch index.php
echo "<?php phpinfo(); ?>" > index.php
git status -s
​
?? index.php
 
git add index.php
git commit -m 'Añadido el fichero inicial de la aplicación'
git push

Ya tenemos añadido un nuevo fichero en nuestro repositorio, y como hemos visto al crear y editar el fichero, hacemos git status -s para comprobar los ficheros que hemos cambiado, y nos aparece un nuevo fichero que no reconoce junto con los interrogantes que nos indican que git ha encontrado el fichero pero no lo tiene incluido aún en su sistema.

Conclusiones

Me he dejado atrás el tema de ramas, que básicamente es que puedes implementar una idea sin que esté añadida a la rama principal, y dejarla como rama aparte o mezclarla en el futuro si quieres.

Para empezar con esto creo que es suficiente, pero que sepas que exista.

Te dejo una imagen que explica el proceso de funcionamiento de git:

Proceso de flujo del funcionamiento de git para gestionar achivos

Empezar con Git parece más complicado de lo que parece, pero te trae ventajas para tener copias de archivos y aquello que se te ocurra.

Cualquier tecnología al principio cuesta utilizarla, y esta en concreto, git es mucho más que un repositiorio para programación.

Recuerda que si te ha gustado lo que has leído puedes apoyar este proyecto a través de tus compras en Amazon, si, si, has leído bien, apoyar el proyecto. Con las compras que hagas de amazon me estarás ayudando a seguir haciendo este tipo de artículos.

Solo tienes que ir aquí y pegar la URL del producto de amazon que quieres comprar.

Tan simple como eso.

Y tan fácil.

Se feliz, y disfruta este día como si fuera una gran aventura.

Publicado en: Ubuntu Etiquetado como: Intermediate

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

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

Barra lateral principal

Descubre Más

Generar documentación para los scripts de bash

Generar documentación para los scripts de bash

julio 1, 2022

Drawing edita imágenes de manera sencilla

Instalar drawing con soporte Webp

enero 20, 2022

Primeros pasos con tus finanzas personales con Beancount

Primeros pasos para controlar tus finanzas con Beancount

noviembre 29, 2021

Placa impresa pcb roja

How to root Galaxy Tab 2 10.1 in linux with heimdall

octubre 15, 2021

Tags

Beginner Comienzo Expert Intermediate Markdown

Footer

Temas de Kacharreo

Supongo que habrás llegado hasta aquí porque eres un culo inquieto, o simplemente tienes curiosidad por algún tema.

Hasta que tu mente no se queda extasiada resolviendo aquello que no te deja dormir no has parado.

Vas a encontrar temas sobre Ubuntu, Cachivaches que hacen cosas, Servicios en la Nube que puedes aprovechar, y temas sobre Rasberry Pi. Hasta es posible que a veces introduzca temas relacionados.

Todo es posible.

Vaya comentarios!!

  • luidelkacha en Instalar y configurar un proxy http en Ubuntu con Squid – Mega Guía
  • Pichibw en Instalar y configurar un proxy http en Ubuntu con Squid – Mega Guía
  • luidelkacha en Un potente editor de texto para nuestro sistema operativo Ubuntu

Canal en Telegram

telegram-iconSíguenos en Telegram

Buscar las llaves

Temas Dispersos

Beginner Comienzo Expert Intermediate Markdown

Creative Commons Atribución -CompartirIgual 4.0 Internacional pa las tontás que publico © 2025 · Acceder
Aviso Legal y Política de Privacidad | Política de Cookies

Gestionar el Consentimiento de las Cookies
Utilizamos cookies para optimizar nuestro sitio web y nuestro servicio.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos anónimos. Sin una requerimiento, el cumplimiento voluntario por parte de su proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarlo.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en un sitio web o en varios sitios web con fines de marketing similares.
Administrar opciones Gestionar los servicios Gestionar {vendor_count} proveedores Leer más sobre estos propósitos
Ver preferencias
{title} {title} {title}