GITHUB

Es una plataforma de desarrollo colaborativo sobretodo para aquellos que utilizamos GIT, recordar la utilización GITHUB gratuito tiene que ser proyecto codigo abierto y están publicos. La plataforma te ofrece este mismos servicio pero privado, lógicamente de pago.

- Permite subir los proyectos publicos los queramos pero de open source.

- Permite subir proyectos privados pero de pago

- Puede tener un wiki por cada proyecto.

 ¿ Lo primero que hacer en GitHub ?

Identificarte ( loguearse )  en la web github con tu usuario y contraseña, si no tiene crear una cuenta, son bastante respectuoso con tu cuenta email y no te molestan con emails.

Empezar con algún proyecto ( REPOSITORIO)

Puedes empezar con:

  • Repositorio nuevo: Nuestro propio proyecto
    • NO TENEMOS UN REPOSITORIO LOCAL CREADO.
    • TIENE UN REPOSITORIO LOCAL CREADO
  • FORK de repositorio de otro usuario: Queremos trabajar en un proyecto de otro usuario de github
    • VER DIFERENCIAS ENTRE FORK Y EL REPOSITORIO ORIGINAL

REPOSITORIO NUEVO DE UN PROYECTO.

 El Repositorio nuevo podemos crearlo directamente desde la interfa de GITHUB , pero antes de realizarlo debemos tener en cuenta.

"Initialize this repository with a README" , si lo marcamos con [si] o [no]

Github2

 [si] -> Si vamos hacer un git clone (vacío)
 [no]-> Si ya tiene git init en tu proyecto y quieres enviar todos tus commits.

A la hora querer crear un repositorio nuevo en Github puede surgir varias situaciones:

  • NO TENEMOS UN REPOSITORIO LOCAL CREADO opción [si]: Si aun no tiene repositorios local creado , aunque tenga ya tu código , pero no tenemos git init.
  • TIENE UN REPOSITORIO LOCAL CREADO opción [no]: Que ya tengas un repositorio local en git y ahora quieres compartirlo en GITHUB, con los commits que ya realizaste. (compartir tu repositorio local completamente )

 Explicamos las dos situaciones.

NO TENEMOS UN REPOSITORIO LOCAL CREADO.

Si no tenemos o no queremos subir los comits de un repositorio local y pulsamos [si] en "Initialize this repository with a README" a la hora crear el REPOSITORIO EN GIHUB una forma sencilla sería:

En el directorio raiz donde queremos situar nuestro repositorio ( en nuevo directorio), con la siguiente instrucción nos crea el repositorio en local, creando un directorio con el nombre del repositorio que creamos con anterioridad en github.

git clone https://  #que nos indica el repositorio github recien creado.

Entonces nos crea una directorio con el nombre del proyecto ( que estará vacio), ya que lo tenemos vacio, pero con el repositorio local de git ( .git ), y configurado el repositorio remoto (GITHUB) como origin.

A partir ahí, ya podemos añadir nuestro código en ese directorio y empezar commitar ...

git commit -m "Inicio en servidor local"

Una vez tengamos tengamos comitado en nuestro repositorio local, ya podemos enviar al repositorio REMOTO de github con la instrucción git push.

git push origin

Todo ha ido correcto y te pedirá [usuario] y [contraseña] de Github para subir tu repositorio local con nuestro comits al repositorio remoto de GITHUB.

Todo esto si hemos selecciona [si] en "Initialize this repository with a README"

Si has pulsado [no] simplemente tiene que configurar el git remoto de tu REPOSITORIO LOCAL con:

git remote add origin http// # repositorio clonado

Con la instrucción anterior indicamos que el repositorio remoto es ....

Si todo fue correcto, solo te faltaría enviar REPOSITORIO LOCAL al REMOTO, para ello con el comando push con los siguientes parametros.

git push origin master -u

Nos pidirá el usuario y la contraseña y listo repositorio remoto actualizados.

 

TIENE UN REPOSITORIO LOCAL CREADO

Al tener un repositorio local creado para poder enviarlo a un REPOSITORIO REMOTO con todos los commits, a un repositorios REMOTO creado en GIHUB sin haber marcado [no] "Iniciatize this repository with a Readme".

Lo que debe hacer es indicar a tu repositorio local la dirección del repositorio remoto (vacio) que acaba de crear, con la siguiente instrucción:

git remote add origin https://urldelrepositorionuevo 

- nos pondrá la url en remote origin.....

Si fue todo correcto, nos queda hacer push origin ,aunque con par de parametros más:

push origin --force

Instrucción que parece bastante peligrosa utilizar, según veo la red. (link)

Nos pedirá [usuario ] y  [ contraseña] de repositorio remote, luego añade el repositorio local en el repositorio remote.

Te en cuenta que todos los commits de nuestro REPOSITORIO LOCAL. Apartir de es primer push, ya el resto no necesitamos utilizar la opción --force.

 TRABAJA EN COLABORACIÓN:

Se podría hacer directamente desde el repositorio del usuario, pero los cambios que realicemos no podremos enviarlo sin que el usuario nos de acceso a su REPOSITORIO REMOTO, cosa que dudo, salvo que haya mucha confianza entre vosotros.

HACER UN FORK DE REPOSITORIO DE OTRO USUARIO:

Si lo queremos es realizar cambien en un proyecto de otro usuario, lo ideal es hacer FORK en GITHUB , ya que asi podemos realizar un pull requests al CREADOR y este mezclarlo con el suyo si le interesa nuestros campos

 Realizar un FORK en GITHUB es tan sencillo como pulsando FORK desde el repositorio queremos.

Una vez realizado FORK , en nuestro nuevo repositorio simplemente tenemos clonar el repositorio a local como indicamos en apartado anterior, sin volver a crearlo claro.

git clone https://  #que nos indica el repositorio remote que hicimos fork.

 Recuerda que la dirección sera algo así: gihub.com/tuusuario/nombrerepositorio

A partir ahí tenemos el repositorio con los commits que haya hasta ahora.

Si realizamos cambios y queremos trabajaremos en nuestro repositorio (FORK) sin entorpecer al usuario u organizacion del proyecto original.

Una vez queramos enviarle o recomendarle un cambio al usuario o organización podemos realizarlo con un push request, donde el usuario o organización decidirá si quiere los aplicar los cambios o  no.

Una vez lo acepten a ti llegará una notificación que fue aceptado o rechazado.

MANTENER AL DIA NUESTRO FORK

Si mantener al dia nuestro fork y actualizado con el repositorio original, si queremos ver las diferencias entre uno u otro.

Lo primero que debemos hacer es crear una conexion al REPOSITORIO ORIGINAL ( el que hicimos el fork) es muy sencillo con la instrucción:

git remote add nombreconexion http://ruta repositorio original

En nombre conexión podremos el queramos, menos origin, ya origin por normalmente ya lo utilizamos con anterioridad al realizar conexion al fork.

NOTA: Al hacer un fork en gihub , al hacer remote add , ya sabe cual la direccion del del repositorio original, sino lo hubieramos hecho un fork , ya sería otro cantar... :-) , por lo que no sería necesario poner la ruta.

Con la siguiente instrucción vemos las conexiones remotas que tenemos en nuestro repositorio local. Instruccion para ver conexiones remotas:

git branch -a

Nos mostrará las conexiones que tenemos creadas, algo así:

* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/nombreconexion/master

Luego simplemente ya podemos utilizar instrucciones git para ver log, differencias que hay en el repositorio original ( del que hizimos el fork).

 Ejemplo de instrucciones a utilizar:

git log nombreconexion/master
git diff nombreconexion/master

Te en cuenta que esto solo vemos las diferencias que hay en el momento de realizar la conexión, si ya paso tiempo, debes actualizar esos datos de la conexión.

Si quieres actualizar ese repositorio con las siguiente instrucción:

git fetch nombreconexion

Entonces ya tiene actualizado el REPOSITORIO REMOTO que le indicaste y ya puede ver los logs o differencias hay.