Clase 10. Material Complementario GitHub
Clase 10. Material Complementario GitHub
Clase 10. Material Complementario GitHub
GitHub
Por ahora todo lo que venía ocurriendo en Git era de manera local, no necesitábamos
nada de internet para guardar nuestros commits y nuestro repositorio.
Ahora queremos compartir nuestro trabajo con otros (compañeros de proyecto, clientes,
etc).
Para eso utilizamos Github!
https://github.com/
“GitHub is a development platform inspired by the way you work. From open source to
business, you can host and review code, manage projects, and build software alongside
50 million developers.
Luego podríamos pedirle ayuda a Github para la creación de algún tipo de organización,
y si queremos que GitHub nos envíe información (¡newsletters alert!) a nuestro correo.
¡Y listo! Ya estamos listos para empezar a crear nuestro propio repositorio online.
README
El Readme podría ser el primer archivo de nuestro repositorio en donde le contemos a la
comunidad de GitHub de qué trata nuestro proyecto.
También podemos adjudicar algún tipo de licencia a nuestro proyecto. Si quieres saber
más sobre licencias:
https://es.wikipedia.org/wiki/Licencia_de_software
https://choosealicense.com/
Luego de ingresar esa información dar click en Crear repositorio (Create repository)
En la parte superior derecha encontraremos un botón verde, el cual nos va a dar las
siguientes opciones:
Una vez copiado este enlace, volvamos a nuestra terminal y con el comando git clone +
[LA URL QUE COPIAMOS DE NUESTRO REPOSITORIO] clonamos los archivos del
proyecto dentro de la carpeta, en este caso, llamada: “miproyecto” :
john@MyShopSolutions MINGW64 /c/
$ git clone https://github.com/kikedehaedo/miproyecto.git
Cloning into 'miproyecto'...
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.
Si listamos los archivos en consola vamos a ver los archivos de nuestro repositorio:
john@MyShopSolutions MINGW64 /c/miproyecto (master)
$ dir
LICENCE README.md
Ya creaste tu cuenta de Github, y tienes tu usuario de Git y tu e-mail (los mismo que los de
GitHub) Ahora tienes que lograr una comunicación entre GitHub y tu entorno local. Para
ello existen las llaves SSH que se generan desde la terminal:
john@MyShopSolutions MINGW64 /c/miproyecto (master)
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
O en MAC:
john@MyShopSolutions MINGW64 /c/miproyecto (master)
$ pbcopy < ~/.ssh/id_rsa.pub
Una vez copiada la llave en el clip-board de nuestro ordenador, tenemos que ingresar el
código de la llave a nuestra configuración de perfil en GitHub:
Una vez agregada (click en “Add SSH key”) nos llegará un mail confirmando el proceso y
la siguiente pantalla:
Git remote
Si queremos generar un enlace entre un repositorio local y un repositorio remoto
podemos hacerlo por medio del comando git remote
Vamos a vincular nuestro repositorio local “nuevo_repo” a nuestro nuevo repositorio en
gitHub
john@MyShopSolutions MINGW64 /c/git/nuevo_repo (master)
$ git remote add origin [email protected]:kikedehaedo/miproyecto.git
En resumen:
git remote add [origin] [SSH/HTTPS] Conecta un repositorio con nuestro equipo local.
git remote -v Lista las conexiones existentes.
git remote remove [origin] Elimina una conexión con algún repositorio.
Nos ha creado una nueva rama (origin/master), no se han mezclado, ahora tenemos que
mezclar los cambios que están en esta nueva rama, y para eso usamos el ya conocido
git merge
john@MyShopSolutions MINGW64 /c/git/nuevo_repo (master)
$ git merge origin/master
Ahora los cambios (nuevos archivos, cambios en archivos, etc) se han fusionado con
nuestros archivos locales.
En caso de tener algún tipo de error al momento de fusionar recuerda que puedes
agregar al comando git merge… lo siguiente siguiente:
john@MyShopSolutions MINGW64 /c/git/nuevo_repo (master)
$ git merge origin/master --allow-unrelated-histories
Este anexo a nuestro comando merge básicamente permite la fusión cuando se niega a
fusionar historias que no comparten un antecesor común. Esta opción se puede utilizar
para anular esta seguridad al fusionar historias de dos proyectos que comenzaron sus
vidas de forma independiente. Como es una ocasión muy rara, no existe ninguna
variable de configuración para habilitar esto por defecto y no se agregará por el
momento.
¿Qué tal si hubiera una forma que hiciera estas dos cosas al mismo tiempo?
Para ello existe el comando git pull
john@MyShopSolutions MINGW64 /c/git/nuevo_repo (master)
$ git pull origin master
Luego nos aparece en la terminal confirmación de este merge ¡y listo! ya tenemos los
cambios en nuestro repositorio Local. Todo con un solo comando en la terminal.
Git Push
Ahora vamos a enviar nuevos cambios a nuestro repositorio remoto. Para ello vamos a
usar un comando llamado git push, para empujar nuevos cambios. En este caso tenemos
un nuevo archivo llamado: “logoweb.png”
Para eso debemos crear el archivos .gitignore, y abriéndolo con un editor de texto
agregarle el nombre de los archivos (nombre.extensión) que queramos ignorar.
Los archivos no serán subidos al repositorio remoto, solo estarán en el repositorio local.
Como plataforma colaborativa, GitHub ofrece a sus usuarios una gran cantidad de
funcionalidades para la gestión de proyectos, todas ellas apoyadas por la comunidad.
Por esta razón, a lo mejor dentro un año tenga agregadas nuevas características que le
permitan a los usuarios un mejor desenvolvimiento en el desarrollo de código.
En caso de que nos interesen los avances del proyecto, situarlo en Watching para así
poder ver los avances del mismo en nuestra página de inicio de GitHub.
Y como última opción podríamos hacerle un Fork al proyecto (en caso de que sea un
proyecto de otro usuario) y copiarlo. Este comando nos va a clonar el proyecto y crear un
nuevo proyecto en nuestro GitHub.
Por ejemplo, en la solapa “Collaborators” podríamos sumar a otro usuario para que nos
ayude con nuestro proyecto y empiece a colaborar con commits sobre nuestros distintos
documentos.
Otra opción a remarcar es la llamada “Branches”, para cambiar cuál sería nuestra rama
principal
Para enterarte de todas las características de GitHub puedes visitar el siguiente link:
https://help.github.com/
GitHub Pages
GitHub nos permite publicar nuestros proyectos online. Para generar un GitHub page
debemos ir a los “Settings” de nuestro repositorio y activar nuestro GitHub page,
seleccionar qué rama queremos usar, guardamos los cambios y GitHub cumplirá la
función básica de cualquier otro Hosting.
Importante: El proyecto solo de archivos estáticos, ningún archivo que requiera de
BackEnd especial.
Luego de seleccionar y salvar los cambios la página recargara y nos mostrará cuál es la URL de
nuestro proyecto