Este tutorial es una guía rápida para instalar y utilizar GitHub. Aquí se explica cómo crear un repositorio local, cómo conectar este repositorio local al repositorio remoto de Github (donde todo el mundo lo puede ver), cómo confirmar los cambios y finalmente cómo empujar todo el contenido del repositorio local hacia GitHub, entre otras tareas comunes.
Antes de empezar, es importante tener en cuenta que este tutorial supone un conocimiento básico de los términos utilizados en Git: empujar (push), jalar (pull), guardar los cambios (commit), repositorio (repository), etc. También requiere el registro previo en GitHub.
Instalación de Github
En Debian/Ubuntu y derivados:
sudo apt-get install git
En Fedora y derivados:
sudo yum install git
En Arch y derivados:
sudo pacman -S git
Configuración inicial de Github
Una vez que la instalación se ha completado con éxito, el siguiente paso es configurar los detalles de configuración del usuario GitHub. Para ello, hay que utilizar los siguientes comandos sustituyendo «nombre_usuario» con tu nombre de usuario GitHub y «email_id» con la dirección de correo electrónico utilizada para crear la cuenta de GitHub.
git config --global user.name "nombre_usuario" git config --global user.email "email_id"
Creación de un repositorio local
Lo primero es crear una carpeta en tu computadora, que servirá como un repositorio local. Para ello, basta ejecutar el siguiente comando:
git init Mytest
Este comando crea la carpeta MyTest. A su vez, la sub-carpeta .init hace que MyTest sea reconocido como un repositorio local de Git.
Si se crea el repositorio con éxito, aparecerá una línea similar a la siguiente:
Initialized empty Git repository in /home/tu_usuario/Mytest/.git/
Acto seguido, hay que entrar a la carpeta MyTest:
cd Mytest
Creación de un archivo README para describir el repositorio
El archivo README se utiliza generalmente para describir lo que el repositorio contiene o lo que el proyecto se trata. Para crear uno, basta ejecutar:
gedit README
Una vez que hayas ingresado la descripción del repositorio, no olvides guardar los cambios.
Adición de los archivos del repositorio a un índice
Este es un paso importante. Antes de poder subir los cambios a Github u otro servidor compatible con Git, hay que indexar todos los archivos contenidos en el repositorio local. Este índice contendrá los archivos nuevos así como los cambios a los archivos existentes en el repositorio local.
En nuestro caso, nuestro repositorio local ya contiene un nuevo archivo: el README. Por lo tanto, vamos a crear otro archivo con un programa C simple y al cual llamaremos ejemplo.c. Los contenidos del mismo serán:
#include int main() { printf("hello world"); return 0; }
Así que, ahora tenemos 2 archivos en nuestro repositorio local: README y ejemplo.c.
El siguiente paso es agregar estos archivos al índice:
git add README git add smaple.c
El comando «git add» se puede utilizar para agregar cualquier número de archivos y carpetas al índice. Para agregar todos los cambios, sin especificar el nombre de los archivos, es posible ejecutar «git add .» (con un punto al final).
Guardar los cambios realizados en el índice
Una vez añadidos todos los archivos, es posible dejar un registro de estos cambios haciendo lo que en la jerga se llama un «commit». Esto significa que ya se ha terminado de agregar o modificar archivos y que los cambios pueden ser subidos al repositorio remoto de Github. Para ello, hay que ejecutar el siguiente comando:
git commit -m "mensaje"
«mensaje» puede ser cualquier mensaje que describa brevemente los cambios en cuestión, por ejemplo: «agregué tal funcionalidad» o «corregí tal cosa», etc.
Creación de un repositorio en GitHub
El nombre del repositorio debe ser el mismo que el repositorio del sistema local. En este caso, será «MyTest». Para ello, antes que nada, hay que iniciar sesión en Github. Luego, hay que hacer clic en el signo más (+) en la esquina superior derecha de la página y seleccionar la opción «crear nuevo repositorio». Finalmente, hay que rellenar los datos y hacer clic en el botón «crear repositorio».
Una vez hecho esto se creará el repositorio y será posible subir el contenido del repositorio local en el repositorio GitHub. Para conectarse al repositorio remoto en GitHub hay que ejecutar el comando:
git remote add origin https://github.com/user_name/Mytest.git
Empujar archivos del repositorio local al repositorio GitHub
El paso final es empujar el contenido del repositorio local hacia el repositorio remoto, mediante el comando:
git push origin master
Sólo resta introducir las credenciales de inicio de sesión (nombre de usuario y contraseña).
Esto subirá todo el contenido de la carpeta MyTest (repositorio local) a GitHub (repositorio externo). Para los proyectos subsiguientes ya no hará falta seguir estos pasos desde cero. En cambio, podrás empezar desde el paso 3 directamente. Por último, no te olvides que los cambios estarán disponibles desde la página web de Github.
Creación de una rama (branch)
Cuando los desarrolladores quieren corregir errores o agregar nuevas funciones a menudo crean una rama (branch) o copia del código de modo que puedan realizar commits en forma separada, sin afectar el proyecto original. Luego, cuando hayan terminado pueden fusionar esta rama de vuelta en la rama principal (master).
Para crear una nueva rama hay dos opciones:
Opción larga:
git branch mirama # crea una nueva rama llamada mirama git checkout mirama - pasa a utilizar la rama mirama.
Opción corta:
git checkout -b mirama - crea y pasa a utilizar la rama mirama
Una vez realizados los cambios, hay que agregarlos al índice de la rama y hacer el commit correspondiente:
git add . git commit -m "cambios en mirama"
Luego, hay que volver a la rama principal y tomar los cambios realizados en mirama:
git checkout master git merge mirama
Finalmente, hay que borrar mirama (ya que los cambios fueron incorporados en master):
git branch -d mirama
Y subir master a Github:
git push origin master
Creación de un repositorio Git derivado (fork)
Gracias a Git y a la existencia de las grandes librerías de repositorios públicos, como Github, gran parte de las veces no es necesario comenzar a programar nuestro proyecto desde cero. En esos casos, es posible tomar este código de base para crear un nuevo proyecto.
Para ello, lo primero que hay que hacer es un fork de un repositorio existente, o sea, un proyecto derivado del mismo que tome como base el código del proyecto original. En Github, eso se consigue haciendo clic en el botón correspondiente, como se ve en la captura a continuación.
Luego, lo que hay que hacer es clonar el repositorio de este nuevo proyecto en nuestra computadora. A modo de ejemplo, podemos utilizar mi repositorio de Ankifox, una extensión para Firefox que permite agregar palabras a Anki, el cual se encuentra disponible en Github:
git clone https://github.com/usemoslinux/Ankifox.git
No olvides reemplazar https://github.com/usemoslinux/Ankifox.git por la URL correspondiente a tu proyecto. Obtener esta dirección es muy fácil, como se ve en la imagen a continuación.
Este comando creará un directorio llamado «Ankifox», inicializará el directorio .git dentro de él, y bajará todos los datos de ese repositorio, a fin de trabajar con la última versión.
Justo algo asi estaba buscando, una guia sencilla y practica que explicara cada cosa paso a paso.
Para bibucket, imagino seria casi los mismos pasos cierto?
Exacto. Es muy similar. Sólo cambia la URL del host remoto.
Lo interesante de Bitbucket es que ofrece la posibilidad de crear repositorios privados (es decir, que no es abierto al público en general sino que sólo es accesible para un grupo específico de gente). En Github esto también es posible, pero hay que pagar. En cambio en Bitbucket no.
Saludos! Pablo.
Genial Amigos!!!De los mejores espacios en inter para enterarse y aprender,
Si te interesa el tema, te recomiendo que le eches un vistazo a un tuto que hizo un miembro de la comunidad sobre cómo usar Git + Google Code, que también es bien interesante y práctico:
https://blog.desdelinux.net/iniciando-un-proyecto-con-git-y-google-code-parte-i/
https://blog.desdelinux.net/iniciando-un-proyecto-con-git-y-google-code-parte-ii/
https://blog.desdelinux.net/iniciando-un-proyecto-con-git-y-google-code-parte-iii/
https://blog.desdelinux.net/iniciando-un-proyecto-con-git-y-google-code-parte-iv/
Saludos! Pablo.
Gracias a ti me gusta más Bitbucket.. de todos modos buen artículo 😀
@usemoslinux Se puede crear «GitHub» para instalar automáticamente sistema FreeBSD?, seria de gran ayuda el instalador casi automático como hace Arch, interesante post.
PD: seria bueno una guía de GitHub para FreeBSD.
Gracias por la guía. Estoy siguiéndola y he tenido un pequeño problema, no me deja subir el repositorio local al remoto. Me da el siguiente error:
[root@iou Mytest]#git push origin master
error: The requested URL returned error: 403 Forbidden while accessing https://github.com/miusuario/Mytest.git/info/refs
¿Alguna idea?
Posiblemente lo que está pasando es que la URL del repositorio remoto que estás ingresando no es correcta. Esto se puede deber a un error de tipeo al ingresar la URL o a que realmente no creaste el repositorio en Github (a través de su página web).
Si el mensaje de error es exactamente como el que mostrás, te faltó cambio «miusuario» por tu nombre de usuario.
Ingresá git remote -v para ver las URLs ingresadas. Para cambiarla, sólo hay que poner git remote set-url origin URLNUEVA
Reemplazando URLNUEVA por la URL correcta.
Por último, no te olvides que la URL distingue entre mayúsculas y minúsculas.
Saludos! Pablo.
Increíble!
Explicado para que hasta los menos duchos en la materia, como yo, lo entendamos y podamos dar nuestros primeros pasos en git o Github. Ahora me quedan claros muchos términos como push, pull o commit.
Muchas gracias!
Era la idea! Me alegro mucho!
Un abrazo y gracias por dejar tu comentario! Pablo.
Genial
Una duda como elimino archivos que ya no los necesito ni en local ni en repositorio de Github
Corrijo mi duda para eliminar directorios con archivos completos
git rm -rf directorio
o Como ???
Para borrar archivos:
git rm archivo1.txt
Para borrar directorios (y sus contenidos):
git rm -r midirectorio
Lo descubri buscando, excelente gracias
Y como lo hago para utilizar Gitlab?
Por lo menos, en elementaryOS no logra terminar la configuracion …
Este error me aparee cuando quiero hacer un
git pull origin master
http://i.imgur.com/fy5Jxvs.png
Como se explica en la captura que compartís, hay cambios en el servidor que no están incorporados en la versión almacenada en tu computadora. A su vez hay cambios en tu computadora que no están en el servidor (que son los que vos querés subir). De ahí el conflicto.
Probá haciendo primero un git pull como te sugieren en la captura.
Gracias por la ayuda, muy buena info, la pondre en practica, gracias nuevamente
En la sección: «Empujar archivos del repositorio local al repositorio GitHub»
, se puede leer:
«Esto subirá todo el contenido de la carpeta MyTest (repositorio local) a GitHub (repositorio externo). Para los proyectos subsiguientes ya no hará falta seguir estos pasos desde cero. En cambio, podrás empezar desde el paso 3 directamente. »
Estoy empezando en esto de Git. ¿Me puedes decir cual es el «paso 3»?
Por otra parte, los comandos:
git config –global user.name «nombre_usuario»
git config –global user.email «email_id»
¿son necesarios realizarlos en cada sesión de Git?
De igual forma, el comando:
git init «nombre de la carpeta»
¿es necesario ejecutarlo en cada sesión de trabajo con Git o el repositorio en cuestión, que pasa cuando tengo dos o mas repositorios?
Magnificos tutoriales, felicidades, gracias y saludos.
entendí perfectamente, lastima que no haya un cliente GUI como el de Windows/Mac :/
llegue a qui para solucionar un problema que me sale de : fatal: Not a git repository (or any of the parent directories): .git ¿ con esta guia se soluciona??? antemano gracias 🙂
Username for ‘https://github.com’: «royalAlexander»
Password for ‘https://»royalAlexander»@github.com’:
remote: Invalid username or password.
fatal: Autenticación falló para ‘https://github.com/royalSanity/Mytest.git/’
help me