Git, GitHub y For-and-Branch Git Workflow


GIT

Antes de empezar , debemos entender a Git como el corazón de GitHub: Git es un sistema de control de versiones desarrollado por Linus Torvalds (el hombre que creó Linux).

Cuando los desarrolladores hacen un nuevo proyecto, siempre continúan haciéndole modificaciones al código. Incluso después de la puesta en marcha de los proyectos, todavía necesitan actualizar las versiones, corregir errores, agregar nuevas funciones, etc.   El sistema de control de versiones ayuda a registrar los cambios realizados al código. Aún más, registra quién realizó los cambios y puede restaurar el código borrado o modificado.No hay códigos sobrescritos ya que Git guarda varias copias en el repositorio. .

HUB

Si Git es el corazón de GitHub, entonces Hub es su alma. El hub de GitHub es lo que convierte una línea de comandos, como Git, en la red social más grande para desarrolladores.

Además de contribuir a un determinado proyecto, GitHub le permite a los usuarios socializar con personas de ideas afines. Puedes seguir a las personas y ver qué hacen o con quién se conectan.

Repository

Un repositorio o “repo” es un directorio donde se almacenan los archivos de tu proyecto. Puede estar ubicado en el almacenamiento de GitHub o en un repositorio local en tu computadora. Puedes almacenar archivos de código, imágenes, audios o todo lo relacionado con el proyecto en el repositorio.

Branch

Branch, que se traduce como rama, es una copia de su repositorio. Puede utilizar la rama cuando quiera hacer un desarrollo de forma aislada.Trabajar en una rama no afectará el repositorio central u otras ramas. Si has completado el trabajo, puedes combinar tu rama con otras ramas y con el repositorio central mediante una pull request.

Pull Request

Pull request significa que les informas a los demás que has enviado al repositorio principal el cambio que hiciste en una rama. Los colaboradores del repositorio pueden aceptar o rechazar una pull request. Una vez abierta, puede discutir y revisar su trabajo con los colaboradores.

Estos  son los pasos para crear una pull request en GitHub:

  1. Vaya al repositorio y busca el menú Branch.
  2. En el menú Branch, elija la rama que contenga su aportacion.
  3. Haga clic en el botón New pull request al lado del menú Branch.
  4. Escriba el título y la descripción de tu pull request.
  5. Pulse el botón Create pull request.

Bifurcar un repositorio

Bifurcar un repositorio significa crear un nuevo proyecto basado en el repositorio existente. En términos simples, esto significa que copia un repositorio existente, hace los cambios necesarios, almacena la nueva versión como un nuevo repositorio y llama a esto su propio proyecto.

Esta es una muy buena función que propulsa el desarrollo del proyecto. Debido a que es un proyecto totalmente nuevo, el repositorio central no se verá afectado. Si el repositorio principal es actualizado, también puedes aplicar esa actualización a tu bifurcación actual.

Sigue estos pasos para bifurcar un repositorio en GitHub:

  1. Vaya al repositorio que quiere bifurcar.
  2. Haga clic en el botón Fork

GitHub no es solo para desarrolladores

GitHub es una excelente plataforma que cambia la forma en que trabajan los desarrolladores. Sin embargo, todo aquel que quiera administrar su proyecto de manera eficiente y trabajar en colaboración también puede usar GitHub.

Si su equipo trabaja en un proyecto que necesita actualizaciones constantes y quieres hacerle un seguimiento a los cambios realizados, GitHub es adecuado para usted. Hay otras alternativas como GitLab o BitBucket, pero GitHub debería estar entre sus opciones.

 

Instalar Git con apt-get

Una forma sencilla y rápida de instalar Git es usando el administrador de paquetes apt, pero la versión que será descargada puede que sea anterior a la versión más reciente de Git.

  1. Para comenzar debemos ejecutar las actualizaciones generales del sistema operativo y sus paquetes, en el caso de Ubuntu abrimos la terminal y ejecutamos el siguiente comando:
    $ sudo apt-get update
    
  2. Luego escribimos y ejecutamos el siguiente comando en la terminal:
    $ sudo apt-get upgrade
    
  3. Git se instala con el siguiente comando:
    $ sudo apt-get install git
    
  4. Para verificar que la instalación fue exitosa y qué versión de git está instalada escribimos:

     

    $ git --version
    

 

 

Configurar Git

Lo primero que debemos hacer luego de terminar de instalar Git, es configurar nuestro perfil de Git con nuestro nombre y correo, es importante porque cada cambio que confirmemos estará asociado a esta información.

  1. Configura tu nombre de usuario con el comando que te mostramos a continuación y sustituye Nombre Apellido por tu nombre:
    git config --global user.name "Nombre Apellido"
    
  2. Configura tu correo electrónico de Git usando el siguiente comando, reemplazando el correo [email protected] por el tuyo:
    git config --global user.email [email protected]
    
  3. Si queremos validar lo que hemos configurado ejecutamos el siguiente comando y lo comprobamos:
    git config --list
    

Primeros pasos con Git usando un ejemplo 

 

Eche un vistazo al libro Pro Git [ 3 ] , que  es la principal fuente de información sobre Git.

Si no tiene una cuenta de GitHub, haga la guía Hello World en GitHub y cree una. Tenga en cuenta que para contribuir al proyecto PRMC se requiere una cuenta de GitHub. Observe que en la guía Hello World, la rama maestra se denomina rama principal . Por favor, cree un archivo README.md para el repositorio Hello World, como sugiere la guía.

Ahora, vamos a hacer lo mismo que hubiéramos hecho usando la interfaz web de GitHub (excepto  crear un Repo), pero ahora usando la terminal que será la interfaz más utilizada para tratar con Git.

Primero, si Git no está instalado en su host (intente ejecutar git en una terminal), instálelo con:   

sudo apt install git   

Clone (descargue) el repositorio de Hello World. Debe hacer clic en el botón «Código» (seleccione «https», no «descargar un archivo zip»). Entonces ejecute: 

  cd hello_world 

Observe que se ha creado un nuevo directorio llamado como el nombre del repositorio en GitHub, y que dentro puede encontrar el archivo README.md escrito en Markdown .

Cree (y cambie a) una rama de funciones llamada improvement_readme . En tu terminal escriba: 

  git checkout - b better_readme   

Modifique el archivo README.md . Agregue, por ejemplo, un enlace a la guía Hello World. Utilice un editor ASCII ( nano , por ejemplo):   

nano README

 Vaya a la    la guia Hello World en n GitHub para consultar mas notas interesantes sobre el ejemplo:

https://guides.github.com/activities/hello-world/

Confirme su  modificación

  git commit -am "Providing the Hello World link"

    En su primera confirmación, se le pedirá:   

 git config --global user.email "your_email@example.com"

 Por favor, ingrese dicha información.Después de la confirmación , su repositorio local está por delante de su repositorio de origen (copia en GitHub del) repositorio remoto. Esto significa que su local tiene modificaciones que el origen no tiene.

Sincronice su local y el origen usando push : 

  git push 

Tenga en cuenta que si no ha actualizado una clave SSH pública (o la clave privada correspondiente no está instalada correctamente en su computadora), el servidor de GitHub solicita su nombre de usuario y contraseña, y esto es algo que sucederá con cada inserción . Para evitar esta entrada repetitiva de su información de inicio de sesión de GitHub, debe iniciar sesión en GitHub utilizando criptografía de clave pública . Para eso, debe tener un par de claves, una pública y otra privada, y cargar la pública en GitHub.

El primer paso es verificar si ya tiene un par de claves (si está usando la distribución de Xubuntu recién instalada, obviamente no necesita verificar nada y puede ir directamente al siguiente paso). Simplemente revise su directorio $ HOME / .ssh con:  

 ls - l ~ /. ssh  

y si encuentra un par de archivos con casi el mismo nombre, y uno de  ellos termina en .pub , probablemente posea un par de claves SSH.

Creemos un par de claves (si no tienes una o si prefieres crear una nueva). Abra una terminal y escriba:  

 ssh - keygen - t rsa - b 4096 - C " your_email @ example . com "   

   utilizando la dirección de correo electrónico que proporcionó cuando creó su cuenta de GitHub. Luego, cuando se le solicite:   Introduzca un archivo en el que al guardar la clave (/ hogar / te /. Ssh / id_rsa ):         simplemente presione la tecla Enter para seleccionar dicho prefijo de salida. De lo contrario, escriba uno diferente, pero no cambie la ruta al directorio .ssh .

Ahora SSH debería solicitarle una frase de contraseña. Si escribe uno, se le pedirá cada vez que envíe sus confirmaciones a GitHub. Hay dos opciones para evitar esto:

No ingrese ninguna contraseña (simplemente presionando la tecla Enter nuevamente en el paso anterior). Esto tiene el inconveniente de que si alguien roba tus claves, podría acceder a GitHub como si estuvieras tú.

Ingrese una frase de contraseña y configure ssh-agent para que usted la envíe a GitHub. Esta opción es la preferible porque se le pedirá la contraseña solo cuando se inicie ssh-agent ( Xfce lo hace por usted).

Ahora es el momento de comprobar si ssh-agent ya se está ejecutando en su ordenador  -Esto se puede hacer con:   

ps aux | grep ssh - agent

    y en el caso de Xubuntu, debería obtener algo similar a: 

      989 ?        Ss     0:00 /usr/bin/ssh-agent /usr/bin/im-launch startxfce4
     1433 pts/0    S+     0:00 grep --color=auto ssh-agent

Esto significa que hay dos procesos en cuya descripción existe la cadena ssh-agent . La primera entrada es el proceso del agente. El segundo es el grep ejecutándose al mismo tiempo que el ps .

Si el ssh-agent no se estaba ejecutando, se puede iniciar para que se ejecute en segundo plano con:

     eval "$ (ssh-agent -s)"

   pero no necesita hacer eso en su instalación de Xubuntu, porque (recuerde) el ssh-agent del entorno de escritorio Xfce lo inicia.

Con sus llaves, ejecuta:  

 ssh - agregar ~ /. ssh / id_rsa 

y se le pedirá la contraseña.

Vaya ahora a GitHub -> Configuración -> Claves SSH y GPG -> Nueva clave SSH. Abra una terminal y escriba:  

 cat . ssh / id_rsa . pub 

y copie y pegue el contenido de dicho archivo (que termina con su dirección de correo electrónico) dentro del espacio donde puede leer » Empieza con ‘ssh-rsa’, … «. No olvide poner un título) al par de claves.

Cuando utilice la clave por primera vez (clonando un repositorio o presionando una confirmación), el cliente SSH le advertirá que no se puede establecer la autenticidad de github.com . Esto es normal y debería suceder solo una vez. Escriba sí . Si este problema persiste, entonces podría estar sufriendo un ataque de hombre en el medio .

Revise el flujo de trabajo de Fork y Branch Git . Básicamente, este «protocolo» explica que para contribuir a un repositorio de código abierto alojado por GitHub sin pertenecer al equipo de desarrollo, debe realizar algunos pasos de git (y algunos de ellos se encuentran a continuación).

Haga una bifurcación del proyecto PRMC . Llamaremos a este repositorio el upstream , cuya URL es

 [email protected]:Sistemas-Multimedia/PRMC.git

 Esta información se puede encontrar cuando clona PRMC. Sin embargo, tenga en cuenta que la acción de clonar PRMC es una pérdida de tiempo porque no puede contribuir directamente a ella (recuerde, debe clonar su propio repositorio).

Agregar el control remoto  upstream con: 

  git remote add upstream git@github.com:Sistemas-Multimedia/PRMC.git

   Compruebe que todo ha funcionado con:   git remoto – v  donde debería ver dos controles remotos: origin y upstream . Algo parecido a:

 

     origin   [email protected]:you_at_GitHub/PRMC.git (fetch)
     origin   [email protected]:you_at_GitHub/PRMC.git (push)
     upstream [email protected]:Sistemas-Multimedia/PRMC.git (fetch)
     upstream [email protected]:Sistemas-Multimedia/PRMC.git (push)

Para actualizar su repositorio local:

git pull upstream master

Acceder desde una Ip a IIS Express


Aunque IIS Express está diseñado principalmente para ser utilizado por desarrolladores en  un equipo de trabajo usando simplemente «localhost:puerto» como punto de pruebas pruebas, quizás no sepa que haciendo un par de cambios en la configuración , también es posible utilizarlo desde equipos externos, por ejemplo para poder hacer pruebas de una web o servicio desde otros dispositivos conectados a la misma red  como terminales móviles .

Partiremos de un proyecto ASP.NET  Core  creado en Visual Studio , da igual si se trata de una aplicación MVC, Web Forms, Web API o lo que sea. Para desarrollar el ejemplo, imaginemos que al ejecutarlo en local estamos usando la URL http://localhost:44342/.

Veamos paso a paso cómo acceder a esta aplicación desde otro equipo conectado a la red local, y cómo solucionar algunos de los problemas que podemos encontrar por el camino.

1. Averiguamos con qué dirección está visible nuestro equipo desde el exterior
Esto podemos hacerlo con cierta facilidad ejecutando el comando «ipconfig | find «IPv» » en la terminal (cmd)  de la siguiente forma:

C:\WINDOWS\system32>ipconfig | find "IPv4"
Dirección IPv4. . . . . . . . . . . . . . : 192.168.56.1
Dirección IPv4. . . . . . . . . . . . . . : 192.168.99.1
Dirección IPv4. . . . . . . . . . . . . . : 192.168.1.46
Dirección IPv4. . . . . . . . . . . . . . : 172.17.117.209
Dirección IPv4. . . . . . . . . . . . . . : 172.17.177.129

C:\WINDOWS\system32>

El número de resultados que veremos ahí dependerá de los adaptadores de red (físicos o virtuales) que tengamos configurados en nuestro equipo. De ellos tendremos que seleccionar la dirección que se encuentre en el rango de red usado por los equipos externos desde los cuales queremos acceder a nuestra web.

En el jemplo  como  todos los equipos de la red local usan direcciones del tipo 192.168.56.*,  el nombre de host que deberían usar para acceder a mi equipo de trabajo sería la 192.168.56.1

2. Localizamos el archivo de configuración de IIS Express del proyecto

Este archivo se llama «applicationhost.config» y en proyectos de Visual Studio se encuentra en una carpeta llamada «.vs\nombre de proyecto\config» que encontramos en el directorio  de la solución, en la subcarpeta del nombre del proyecto  y dentro de ella, en la subcarpeta «config».

En otros casos, el archivo de configuración se puede  encontrar en la carpeta de configuración de IIS Express de vuestro usuario en el equipo: %userprofile%\documents\iisexpress\config.

3. Localizamos las líneas donde se especifica la URL por defecto del proyecto

En el archivo «applicationhost.config«, debemos localizar la parte de la configuración donde se indica la URL de acceso al proyecto en la máquina local. Por ejemplo, podría ser algo como esto:

<bindings>
<binding protocol=»http» bindingInformation=»*:53980:localhost» />
<binding protocol=»https» bindingInformation=»*:44342:localhost» />
</bindings>

 

Observe que este binding está limitando el acceso a vuestro sitio web, permitiendo únicamente el uso del host «localhost» para acceder al mismo. Para habilitar el acceso desde equipos externos, lo primero que tenemos que hacer es añadir otros bindings con el nombre de host que se utilizará desde fuera.

4. Añadimos a la configuración de IIS Express el nuevo binding con la dirección de nuestro equipo

En la sección de configuración <bindings>, añadimos una nueva línea en la que indicaremos que la aplicación también será accesible utilizando como host nuestra IP, de forma que quedaría más o menos como aparece a continuación.

 Ojo, ¡deberiamos elegir un puerto distinto al que usamos en localhost para que no haya conflictos !

Bien, pues si ahora intentamos ejecutar sin depuración sin permisos de administrador  nos aparecera el error de que no es posible iniciar IIS Express, pero no se preocupe pues este error aparece siempre que no hayamos lanzado Visual Studio como administrador, pues el nivel de permisos del proceso bajo el que se lanza IIS Express no es suficiente como para «apropiarse» de una dirección y puerto TCP/IP del equipo y utilizarla para escuchar peticiones.

En cambio, si iniciamos Visual Studio como administrador veremos que arranca correctamente y que, de hecho, podemos acceder a la aplicación utilizando tanto localhost:44342 como con permisos de administrador 192.168.1.46:44342, lo que quiere decir que, si no existen problemas de permisos, el binding está bien hecho.

 

5. Reservar la URL y conceder permisos de uso (sólo no administradores)

Como hemos comentado antes, este paso no será necesario si estamos ejecutando Visual Studio (y por tanto IIS Express) como administrador. Pero si no es así, debemos abrir una la línea de comandos con permisos elevados y utilizar la siguiente instrucción para reservar la URL y darle derechos de uso a determinados usuarios del equipo, por ejemplo como sigue desde la terminal de windows (cmd)  con permisos de administrador (no lo intente desde PowerShell porque le dara error) :

Pero antes de hacerlo tened en cuenta unos detalles:

  • Primero, la URL debe estar completa, incluida la barra del final.
  • El usuario puede ser cualquier grupo del sistema o nombre de usuario con dominio.
  • Los nombres de grupo son sensibles al idioma de instalación de Windows. Es decir, si vuestro Windows está instalado en inglés, debéis usar el nombre «everyone» en lugar de «todos».

Tras ejecutar el comando, ya debería ser posible acceder a la aplicación desde el equipo utilizando tanto la URL interna (localhost) como la externa (192…), cada una con su puerto correspondiente.

Pero el acceso externo aún no está garantizado: el firewall impedirá el acceso a no ser que le indiquemos lo contrario.

6. Abrir el firewall

Por defecto, el firewall de Windows rechazará cualquier intento de acceso a la máquina desde el exterior, por lo que debemos configurar una regla de entrada que asegure que las peticiones hacia nuestra web podrán entrar sin que el firewall rechaze ese trafico.

Esto lopodemos hacer dede el intrefaz graficos en configuracion avanzada en reglas del Cortafuegois  o bien desde la  consola de comandos con permisos de administrador, ejecutando la siguiente orden :netsh advfirewall firewall add rule name=»Acceso externo a mi aplicacion web» dir=in action=allow protocol=TCP localport=44342

Por supuesto, recuerde que:

  • El parámetro localport debe ser el puerto que haya elegido para el acceso externo, el mismo que usamos en el archivo de configuración de IIS Express, y más adelante al reservar la URL.
  • Es conveniente poner un nombre reconocible a la regla, de forma que más adelante podamos identificarla con facilidad.

Como ultima nota, si  desea probar su aplicacion desde un  dispositivo android , aseguresea antes qeu este esta dentro de su red, y no olvide escribir la direcccion completa (con https)  y desde un navegador diferente al usado como navegador interna ( por ejemplo con Chrome o Firefox)

¡Y eso es todo! Si ha llegado hasta aquí, ya podra ejecutar o depurar vuestra aplicación en Visual Studio, y acceder a ella desde cualquier equipo de la red local usando la dirección que hayas elegido en los pasos anteriores.