10 - Introducción Git Con GitHub
10 - Introducción Git Con GitHub
TUTORIAL: GUÍA
INICIAL DE USO DE
GIT CON GITHUB
GUÍA DE GIT CON GITHUB
¿QUÉ ES EL CONTROL DE VERSIONES?
Los sistemas de control de versiones son programas que tienen como objetivo controlar los
cambios en el desarrollo de cualquier tipo de software, permitiendo conocer el estado actual
de un proyecto, los cambios que se le han realizado a cualquiera de sus piezas, las personas
que intervinieron en ellos, etc. El software de control de versiones realiza un seguimiento de
todas las modificaciones en el código en un tipo especial de base de datos. Si se comete
un error, los desarrolladores pueden ir atrás en el tiempo y comparar las versiones anteriores
del código para ayudar a resolver el error al tiempo que se minimizan las interrupciones para
todos los miembros del equipo.
El control de versiones ayuda a los equipos a resolver estos tipos de problemas, al realizar
un seguimiento de todos los cambios individuales de cada colaborador y ayudar a evitar
que el trabajo concurrente entre en conflicto.
En definitiva, tener un control de los cambios en los códigos de nuestra aplicación es una
variable crucial para el éxito de nuestro desarrollo. Git es un sistema de control de versiones
de código abierto, diseñado para manejar grandes y pequeños proyectos con rapidez y
eficiencia. La pretensión de este tutorial es abordar el uso básico de Git proporcionando
ejemplos prácticos útiles para comenzar a administrar repositorios remotos con plataformas
como Bitbucket o GitHub.
¿QUÉ ES GIT?
Git es la mejor opción para la mayoría de los equipos de software actuales. Aunque cada
equipo es diferente y debería realizar su propio análisis, aquí recogemos los principales
motivos por los que destaca el control de versiones de Git con respecto a otras alternativas:
1
GIT ES UN PROYECTO DE CÓDIGO ABIERTO DE CALIDAD
Git es un proyecto de código abierto muy bien respaldado con más de una década de
gestión de gran fiabilidad. Los encargados de mantener el proyecto han demostrado un
criterio equilibrado y un enfoque maduro para satisfacer las necesidades a largo plazo de
sus usuarios con publicaciones periódicas que mejoran la facilidad de uso y la funcionalidad.
La calidad del software de código abierto resulta sencilla de analizar y un sin número de
empresas dependen en gran medida de esa calidad.
Git goza de una amplia base de usuarios y de un gran apoyo por parte de la comunidad. La
documentación es excepcional y para nada escasa, ya que incluye libros, tutoriales y sitios
web especializados, así como podcasts y tutoriales en vídeo.
El hecho de que sea de código abierto reduce el costo para los desarrolladores aficionados,
puesto que pueden utilizar Git sin necesidad de pagar ninguna cuota. En lo que respecta a
los proyectos de código abierto, no cabe duda de que Git es el sucesor de las anteriores
generaciones de los exitosos sistemas de control de versiones de código abierto, SVN y
CVS.
¿QUÉ ES GITHUB?
Github es un portal creado para alojar el código de las aplicaciones de cualquier
desarrollador. La plataforma está creada para que los desarrolladores suban el código de
sus aplicaciones y herramientas, y que como usuario no solo puedas descargarte la
aplicación, sino también entrar a su perfil para leer sobre ella o colaborar con su desarrollo.
Git, al ser un sistema de control, va ser la herramienta que nos va a permitir comparar el
código de un archivo para ver las diferencias entre las versiones, restaurar versiones
antiguas si algo sale mal, y fusionar los cambios de distintas versiones.
Así pues, Github es un portal para gestionar proyectos usando el sistema Git.
2
¿COMO CREAR REPOSITORIO EN GITHUB?
Para esto primero deberemos crearnos una cuenta en GitHub, recomendamos ir a GitHub
y crearse una cuenta, antes de seguir con la guía.
Para subir tu proyecto a GitHub, deberás crear un repositorio donde alojarlo. Para poder
crear un repositorio deberemos crearnos una cuenta en GitHub.
2) Escribe un nombre corto y fácil de recordar para tu repositorio. Por ejemplo: "hola-
mundo".
3) También puedes agregar una descripción de tu repositorio. Por ejemplo, "Mi primer
repositorio en GitHub".
3
4) Elige la visibilidad del repositorio. Puedes restringir quién tiene acceso a un repositorio
eligiendo la visibilidad de un repositorio: público o privado. Publico significa que
cualquier persona puede ver ese repositorio y privado significa que solo personas
autorizadas pueden verlo. Que sea publico no significa que la gente puede subir cosas
a nuestro repositorio, lo único que permite es que se puedan ver los archivos.
4
¿CÓMO INSTALAMOS GIT?
Una vez que tenemos creado un repositorio en GitHub vamos a tener que instalar Git
Si bien esta compilación de Git está bien para algunos usuarios, es posible que desee
instalar la versión más actualizada. Puede hacerlo de muchas formas diferentes; hemos
recopilado algunas de las opciones más fáciles a continuación. Recordamos que si ya
tenemos Git en nuestra Mac, no es necesario instalarlo, solo si queremos una versión más
nueva.
https://sourceforge.net/projects/git-osx-installer/files/
git --version:
$ git --version
git version 2.9.2
Esta opción SOLO la vamos a utilizar si no nos funcionó la opción anterior, de lo contrario
obviar esta parte de la guía.
Homebrew instala una lista de paquetes útiles que no vienen preinstalados en Mac.
B. El terminal le pedirá que ingrese una contraseña. Ingrese la contraseña que usa para
iniciar sesión en su Mac y continuar con el proceso de instalación.
5
C. Una vez terminado, ingrese brew install git en la terminal y espere a que se descargue.
Verifique que Git se instaló ejecutando git –version
git --version:
$ git --version
git version 2.9.2
git --version:
$ git --version
git version 2.9.2
6
¿QUÉ ES EL GIT TOKEN EN GITHUB?
Para poder subir nuestros cambios o nuestras tareas a GitHub, vamos a tener que configurar
nuestro Personal Access Token , este le permite a GitHub autenticar que eres tú, el que está
tratando de subir cosas al GitHub. De modo que puedas realizar todo tipo de operativas,
como clonar repositorios o enviar cambios a GitHub desde local a remoto.
Este procedimiento lo tendrás que hacer en todo lugar donde necesites una clave
para poder utilizar GitHub desde fuera del sitio web. Por ejemplo clonar un repositorio
privado de GitHub en local, enviar cambios a GitHub con Push, traerte cambios con Pull,
etc.
7
Las siguientes opciones las accedes mediante el navegador vertical de la izquierda. Ahí
pulsamos la opción Developer Settings y luego Personal Access Tokens.
Entonces accederás a una página donde puedes administrar tus Personal Access Tokens.
Aquí vamos a crear un nuevo token con el botón Generate new token.
8
Entonces aparecerá un formulario que debes rellenar, indicando el nombre del token (para
saber en qué lo vas a utilizar) y otros detalles como la expiración del token y los scopes.
Nombre Token
Expiración Token
Scopes:
9
Los scopes son simplemente las operaciones que estarán o no permitidas desde este token.
Lo más común es que des permisos para acceder a los repositorios remotos alojados en
GitHub, pero existen otras operativas que puedes hacer o no tú y que podrías permitir o no
con este token que vas a crear.
¡Por supuesto, no lo debes pegar en el código de ninguna aplicación, para no dejarlo visible
para otras personas!! o tus accesos a GitHub podrían verse comprometidos.
Otro detalle importante es que este token solamente aparecerá una vez en la página de
GitHub. Si lo necesitas recuperar porque lo has perdido simplemente no podrás hacerlo.
Tendrás que generar uno nuevo.
10
CÓMO USAR EL PERSONAL ACCESS TOKEN DE GITHUB
El mecanismo para usar el PAT es tan sencillo como el que anteriormente hacíamos con la
clave del sitio web.
Para abrir la aplicación tendremos que hacer Barra Espaciadora + Commnad ⌘ y ahí
escribiremos Keychain Access o Acceso a Llaveros. Cuando aparezca le damos al Enter
Las credenciales son las que tienen el arroba @ azul. Puede ser que nos salgan dos
credenciales de GitHub, tenemos que abrir la que tenga nuestra cuenta como credencial.
Para revisarlo le haremos doble click a la credencial y ahí nos va a mostrar la credencial y
dentro podremos ver la cuenta. Se vería algo así:
11
Nuestro Mail de GitHub
Dentro de la credencial con nuestra cuenta, vamos a agregar el Token. Para esto vamos a
copiar el token y dentro de la credencial vamos a darle a Mostrar contraseña o Show
Password, nos va a pedir la contraseña de nuestra computadora, ingresamos la contraseña
y le damos a Permitir.
Después de realizar este paso, puede ser que al intentar hacer alguna operativa de nuevo
con GitHub se pedirá tu usuario y contraseña, e introducirás tu usuario y el token.
12
CACHEO DEL PERSONAL ACCESS TOKEN
El cacheo del Access Token lo puedes realizar en cualquier sistema operativo por medio de
Git. En MacOS se hace automáticamente con la aplicación de llaves. Para los usuarios de
otros sistemas operativos como Linux y Windows en la documentación de GitHub
encontramos algunas otras indicaciones interesantes.
En Linux te informan de dos comandos útiles. Este te permite indicar que las credenciales
se cacheen:
Y este otro comando te permite que las credenciales permanezcan cacheadas por el tiempo
que tú estimes conveniente. El tiempo se indica en segundos. Por ejemplo, para cachear las
credenciales por 3 horas lanzas el siguiente comando.
Eso es todo! espero que con estas indicaciones puedas realizar toda la configuración de
GitHub para el acceso desde el terminal en local y poder administrar tus repositorios
remotos.
CONFIGURACIÓN INICIAL
Abra su terminal de Git para comenzar con la ejecución de comandos, por ejemplo, abrirá
el programa Git bash en Windows para ingresar a la línea de comandos de este programa.
Una vez que ingrese, use el siguiente comando para establecer el nombre de usuario de git:
Recuerde sustituir el texto entre comillas por su nombre real. Ahora indique el correo
electrónico del usuario para git:
Sustituyendo el texto entre comillas por su cuenta de correo electrónico. Esta configuración
inicial debería ser suficiente para comenzar. Para comprobar otros valores de su
configuración actual ejecute:
...
color.diff=auto
color.status=auto
13
...
user.name=Juan Perez
Vamos a elegir de momento la opción 1) que nos permitirá comenzar desde cero y con la
que podremos apreciar mejor cuáles son las operaciones básicas con Git. En este sentido,
cualquier operación que realizas con Git tiene que comenzar mediante el trabajo en local,
por lo que tienes que comenzar por crear el repositorio en tu propia máquina. Incluso si tus
objetivos son simplemente subir ese repositorio a Github para que otras personas lo puedan
acceder a través del hosting remoto de repositorios, tienes que comenzar trabajando en
local.
Los repositorios locales residen en las computadoras de los miembros del equipo. Por el
contrario, los repositorios remotos se alojan en un servidor al que pueden acceder todos los
miembros del equipo, probablemente en Internet o en una red local.
Nosotros trabajaremos en nuestro repositorio local y cuando sintamos que lo que hemos
hecho está bien o ya está listo, lo subiremos a nuestro repositorio remoto, de esa manera
todos lo cambios que hayamos hecho estarán subidos a internet y nuestros compañeros de
equipo podrán verlos. Pero esto significa que mientras estemos trabajando, estaremos
trabajando en el repositorio local y después unificaremos con el remoto.
En Windows podemos hacer click derecho a la carpeta y darle a Git Bash Here, eso nos
abrirá la terminal Git Bash en la carpeta para trabajar Git.
En Mac podemos hacer lo mismo, click derecho a la carpeta y darle a la opción Nuevo
Terminal en la carpeta.
14
Una vez parados en nuestra carpeta. Para crear un nuevo repositorio, usa el comando git
init. git init es un comando que se utiliza una sola vez durante la configuración inicial de un
repositorio nuevo. Al ejecutar este comando, se creará un nuevo subdirectorio .git en tu
directorio de trabajo actual. También se creará una nueva rama principal.
$ git init
Una vez que tenemos el archivo agregado y guardado de manera local, tenemos que
vincular este repositorio local a un repositorio remoto en GitHub. Para esto vamos a utilizar
el comando git remote add.
Este comando va a tomar el alias nuestro repositorio y la url de nuestro repositorio en GitHub,
con esto va a vincularlo con nuestro repositorio local.
El alias que vamos a utilizar para Github es origin y para obtener la url de nuestro repositorio,
podemos encontrarla al principio de nuestro repositorio:
Git Status
El comando de git status nos da toda la información necesaria sobre la rama actual.
git status
15
• Si hay archivos en preparación (staged), sin preparación(unstaged) o que no están
recibiendo seguimiento (untracked)
Git Add
Necesitamos usar el comando git add para incluir los cambios del o de los archivos en tu
siguiente commit.
git add .
Si revisas la captura de pantalla del git status, verás que hay nombres de archivos en rojo -
esto significa que los archivos sin preparación. Estos archivos no serán incluidos en tus
commits hasta que no los añadas.
Hacemos un git add . para agregar nuestro archivo txt. Una vez que hacemos el git add
hacemos otro git status, ahora veremos que los archivos que estaban en rojo, están en verde,
esto quiere decir que ya los hemos agregado para hacer nuestro commit.
16
Git Commit
Este sea quizás el comando más utilizado de Git. Una vez que se llega a cierto punto en el
desarrollo, queremos guardar nuestros cambios (quizás después de una tarea o asunto
específico) o subir un archivo / proyecto.
También necesitamos escribir un mensaje corto para explicar qué hemos desarrollado o
modificado en el código fuente.
Hacemos un commit para guardar nuestro txt y le ponemos un mensaje que explique que
hemos hecho.
Una vez que tenemos el archivo agregado y guardado de manera local, tenemos que
vincular este repositorio local a un repositorio remoto en GitHub. Para esto vamos a utilizar
el comando git remote add.
El alias que vamos a utilizar para Github es origin y para obtener la url de nuestro repositorio,
podemos encontrarla al principio de nuestro repositorio:
17
¿QUÉ SON LAS RAMAS EN GIT?
A menudo necesitamos trabajar con más de una persona sobre un mismo proyecto. Pero,
¿Qué pasa si más de un desarrollador hace cambios sobre el mismo archivo?, o peor aún,
¿Qué pasa si ambos cambian la misma línea de código?
Para evitar este tipo de problemas y colisionar código permanentemente, git provee la
herramienta de branches (rama). De esta manera, puedes crear tu propia rama del
proyecto y hacer todos los cambios que necesites, y al final del proceso crear un pull
request para mergear (juntar tus cambios) con la rama principal, main o master.
Puedes ver las ramas en la que te encuentras en cada instante con el comando:
git branch
Esta rama es la principal de tu proyecto y a partir de la que podrás crear nuevas ramas
cuando lo necesites.
Si has hecho algún commit en tu repositorio observarás que después de lanzar el comando
"git branch" nos informa el nombre de la rama como "master".
Recordemos que en GitHub esta rama puede llamarse Main, siempre podemos cambiar el
nombre de la rama a Master con las configuraciones de GitHub.
Git pull es un comando de Git utilizado para actualizar la versión local de un repositorio
desde otro remoto.
Es uno de los cuatro comandos que solicita interacción de red por Git. Por default, git
pull hace dos cosas.
2. Actualiza las referencias de rama remota para todas las demás ramas.
git pull recupera (git fetch) las nuevas confirmaciones y las fusiona (git merge) en tu rama
local.
18
USANDO GIT PULL
Usa git pull para actualizar un repositorio local del repositorio remoto correspondiente. Por
ejemplo: Mientras trabajas localmente en master, ejecuta git pull para actualizar la copia
local de master y actualizar las otras ramas remota de seguimiento remoto.
Sin embargo, hay algunas cosas que hay que tener en cuenta para que ese ejemplo sea
cierto:
• Si existen múltiples remotos, git pull podría no ser suficiente información. Es posible
que debas ingresar git pull origin o git pull upstream.
De todas formas, si tu rama ha sido creada recientemente, puede que tengas que cargar y
subir tu rama con el siguiente comando:
Cuando creamos un repositorio en GitHub, nos crea una rama por defecto llamada main,
podemos en la configuración cambiar para que la rama que se cree por defecto se llame
master.
Una vez que hemos hecho esto, si refrescamos nuestro repositorio vamos a ver nuestro
archivo txt en nuestro repositorio de GitHub.
19
CLONAR UN REPOSITORIO
Ahora vamos a hablar de la operativa de clonado de un repositorio, el proceso que tienes
que hacer cuando quieres traerte el código de un proyecto que está publicado en GitHub y
lo quieres restaurar en tu ordenador, para poder usarlo en local, modificarlo, etc.
Este paso es bastante básico y muy sencillo de hacer, pero es esencial porque lo necesitarás
realizar muchas veces en tu trabajo como desarrollador. Además intentaremos
complementarlo con alguna información útil, de modo que puedas aprender cosas útiles y
un poquito más avanzadas.
DESCARGAR VS CLONAR
Al inicio de uso de un sitio como GitHub, si no tenemos ni idea de usar Git, también podemos
obtener el código de un repositorio descargando un simple Zip. Esta opción la consigues
mediante el botón de la siguiente imagen.
Sin embargo, descargar un repositorio así, aunque muy sencillo no te permite algunas de las
utilidades interesantes de clonarlo, como:
• No crea un repositorio Git en local con los cambios que el repositorio remoto ha
tenido a lo largo del tiempo. Es decir, te descargas el código, pero nada más.
• No podrás luego enviar cambios al repositorio remoto, una vez los hayas realizado
en local.
En resumen, no podrás usar en general las ventajas de Git en el código descargado. Así que
es mejor clonar, ya que aprender a realizar este paso es también muy sencillo.
Primero copiarás la URL del repositorio remoto que deseas clonar (ver el icono "Copy to
clipboard” en la siguiente imagen).
20
Luego abrirás una ventana de terminal, para situarte sobre la carpeta de tu proyecto que
quieras clonar. Yo te recomendaría crear ya directamente una carpeta con el nombre del
proyecto que estás clonando, o cualquier otro nombre que te parezca mejor para este
repositorio. Te sitúas dentro de esa carpeta y desde ella lanzamos el comando para hacer
el clon, que sería algo como esto:
El último punto, después de la url copiada desde git, le indica que el clon lo vas a colocar en
la carpeta donde estás situado, en tu ventana de terminal. La salida de ese comando sería
más o menos como tienes en la siguiente imagen:
De esta manera nosotros ya tenemos el repositorio remoto para trabajar local y podremos
hacer los cambios que queramos y subir los cambios con los comandos que explicamos
previamente.
21
¿PUEDO INVITAR COLABORADORES A UN REPOSITORIO
PERSONAL?
Nosotros vimos como clonar un repositorio para poder usar su código y si quisiéramos hacer
cambios y subir esos cambios. Todos los usuarios de GitHub pueden ver y clonar tu
repositorio, siempre y cuando sea un repositorio publico. Pero, no todo las personas que
clonan tu repositorio pueden subir sus cambios, ya que GitHub entiende que los repositorios
son de nuestra propiedad y somos los únicos que podemos modificarlo.
Ahora, como hacemos cuando queremos que varias personas trabajen en un mismo
repositorio y queremos que GitHub les deje subir esos cambios. Para ese dilema GitHub nos
deja invitar colaboradores a nuestro proyecto. Esto se hará de la siguiente manera:
22
6. En el campo de búsqueda, comienza a teclear el nombre de la persona que quieres
invitar, luego da clic en un nombre de la lista de resultados.
IMPORTANTE
Para que sigas practicando esta herramienta tan importante, los ejemplos de las siguientes
guías para descargar, van a estar alojados en el siguiente portal de tu curso con repositorios.
La idea es que practiquen descargar esos ejemplos usando Git y así no perder la practica.
Recomendamos que se guarden este link para siempre tenerlo a mano!!
23
EJERCICIOS DE APRENDIZAJE
Ahora es momento de poner en practica todo lo visto en la guía.
PRIMER EJERCICIO
1. Primero deberemos estar registrados en GitHub, tener instalado Git y tener configurado
git en la computadora con nuestras credenciales
2. Luego tendremos que crear desde GitHub un repositorio SIN ARCHIVO README y
copiar la URL directa hacia el repositorio.
3. Crear una carpeta que contenga un archivo .txt con un mensaje inicial
5. git init
8. Luego controlo los cambios que están bajo observación en la rama principal con:
9. git status
14. Y finalmente hago un git push origin para mandar mis cambios al repositorio remoto
15. Podría cambiar el mensaje del .txt y volver a repetir los pasos desde el 2 al 10 y debería
ver en la pagina de git mis cambios
RECOMENDACIÓN
Todo lo que hacemos desde el paso 2 al 9 debemos repetirlo en todos los ejercicios que
quisiéramos guardar en nuestro Git personal.
Desde Egg sugerimos hacerlo con todos los siguientes ejercicios y cada vez que
terminemos nuestra jornada de estudio. Lo recomendamos por dos motivos: uno, para
practicar Git desde ahora hasta la última guía y dos, para que nuestros ejercicios no se
pierdan ante algún eventual problema en nuestra computadora.
24
SEGUNDO EJERCICIO
1. Tendremos que pedirle un repositorio publico a algún estudiante de nuestro curso.
3. Tendremos que abrir Git en alguna carpeta y correr el comando git clone
URL_ESTUDIANTE
Nota: De esta manera podremos no solo aprender del código de otros programadores, sino
que también podremos recuperar información propia de nuestros proyectos desde git.
25