Documente Academic
Documente Profesional
Documente Cultură
GitHub es el repositorio
-Git en pocas palabras es un controlador de versiones distribuido. -Un controlador de versiones es un sistema que registra los cambios en un archivo o conjunto de archivos a travs del tiempo para que se puedan recuperar versiones especficas de los mismos ms adelante. o 1er control de versiones de usa Linux.
Podemos revisar que estn bien escritos haciendo uso del siguiente comando:
id_rsa.pub
user.email=pedroperez@ejemplo.com
Tambin debemos conocer que Git guarda esta informacin dentro del archivo oculto .gitconfig en el Home del usuario. Utilizando el siguiente comando podemos observar la informacin suministramos durante la configuracin:
Inicializacin de un repositorio
Un repositorio no es ms que una carpeta o conjunto de carpetas que contienen archivos. Podemos crear una carpeta y luego iniciar el repositorio dentro, utilizando los siguientes comandos:
Con el comando git init se crea una carpeta oculta llamada .git (se encuentra dentro de la carpeta Ejemplo) y contiene toda la informacin necesaria para que podamos realizar las versiones (copias de seguridad) de nuestro proyecto. En este punto Git no est llevando el control de ningn archivo.
1 $ touch Archivo1.txt # Creamos el archivo vaco 2 $ echo 'Hola Mundo' >> Archivo1.txt # Le agregamos texto al archivo 3 $ git add Archivo1.txt # colocamos el archivo en escenario
Al ejecutar el comando git add Archivo1.txt estamos confirmando (agregando el archivo al escenario) que los cambios que realizamos sobre Archivo1.txt se quieren respaldar la prxima vez que consolidemos la data.
Consolidar la informacin.
Para consolidar el archivo previamente creado y puesto en escenario debemos utilizar el siguiente comando:
Clonar un repositorio:
El comando git clone lo utilizaremos para literalmente realizar una copia de seguridad de lo que se encuentra en el servidor remoto. Como se explic en el captulo pasado cualquiera puede copiar un repositorio completo y hospedarlo en su computador por si ocurre algn imprevisto con el servidor remoto, si se desea contribuir o distribuir un proyecto como es nuestro caso para esta serie de totorales. Cmo realizamos una clonacin de un repositorio? Pues es bastante sencillo. Primero nos dirigimos al directorio donde queremos que se descargue la copia de seguridad (Lo creamos sino existe) y luego utilizando el siguiente comando.
1 $ cd ~/CodeHero/tutorial-git 2 $ git clone https://github.com/codeheroco/tutorial-git.git
Status
El comando git status nos identifica si existe un archivo modificado o no en nuestro repositorio. Esto es importante ya que si hacemos memoria del captulo anterior hay que ubicar los archivos en el escenario antes de consolidarlos en la base de datos. Cuando el repositorio no presenta modificaciones y corremos el comando, obtenemos la siguen salida:
Pero si ahora agregamos un nuevo archivo y le copiamos texto podemos ver que la salida es bastante diferente:
1 2 3 4 5 6 7 8
$ touch Archivo2.txt $ echo 'Texto para el segundo archivo' >> Archivo2.txt $ git status On branch master Untracked files: #<-- Nos est indicando que tenemos archivos nuevos. (use "git add <file>..." to include in what will be committed) Archivo2.txt #<-- El archivo nuevo del que git no conoce. nothing added to commit but untracked files present (use "git add" to track)
Si observamos con detenimiento nos pide que utilicemos el mismo comando de git add que aprendimos en el primer captulo para comenzar a seguir los cambios de este archivo. Vamos a realizarlo!
1 $ git status 2 On branch master 3 Changes to be committed: 4 (use "git reset HEAD <file>..." to unstage) 5 new file: Archivo2.txt #<-- Archivo nuevo
Ahora podemos apreciar que Git ha subido al escenario al Archivo2.txt y lo conoce como archivo nuevo. nota: Antes de consolidar los cambios en el Archivo2.txt vamos a comenzar a ver el siguiente comando.
Diff
El comando git diff nos identifica todos los cambios de un archivo con respecto a su versin anterior, o mejor dicho nos identifica los cambios de un archivo entre
diferentes versiones. Es aqu donde podemos apreciar los cambios realizados que vamos a consolidar en esta nueva versin. Ahora realizando la continuacin de lo que venimos realizando utilicemos el siguiente comando:
1 2 3 4 5 6 7 8
$ git diff --cached # comando utilizado para archivos en el escenario. diff --git a/Archivo2.txt b/Archivo2.txt new file mode 100644 index 0000000..aeaed15 --- /dev/null +++ b/Archivo2.txt # Archivo con ms lneas. @@ -0,0 +1 @@ +Texto para el segundo archivo # lneas nuevas
Al utilizar el comando observamos que una vez que tenemos el Archivo2.txt en escenario podemos revisar sus diferencias con respecto a una versin anterior (en este caso no existe) pero de igual manera nos indica que al archivo se le agregaron lneas nuevas y nos dice cuales fueron. Ahora si consolidamos el archivo y lo modificamos podemos apreciar como la salida es algo distinta:
1 2 3 4
$ git commit -m "Agregar Archivo2" [master 9322f84] Agregar Archivo2 1 file changed, 1 insertion(+) create mode 100644 Archivo2.txt
Si ahora modificamos de nuevo el Archivo2.txt y utilizamos git diff nuevamente veamos lo que sucede:
1 2 3 4 5 6 7 8 9 10 11
$ echo 'Cambiando la primera linea' > Archivo2.txt $ echo 'Agregando una segunda linea' >> Archivo2.txt $ git diff diff --git a/Archivo2.txt b/Archivo2.txt #diferencia entre versiones index aeaed15..4564504 100644 --- a/Archivo2.txt # Versin anterior con menos lneas +++ b/Archivo2.txt # Versin actual con ms lianas @@ -1 +1,2 @@ -Texto para el segundo archivo # Eliminamos sta lnea +Cambiando la primera linea # Agregamos estas dos +Agregando una segunda linea
Los signos + y nos indican los cambios realizados sobre el archivo y funciona nicamente como indicativos visuales. An as vemos lo til y fundamental que es ste comando para conocer los nuevos cambios realizados. Ahora vamos a subir estos nuevos cambios al escenario y posteriormente consolidarlos en la base de datos.
1 2 3 4
$ git add Archivo2.txt $ git commit -m "Modificaciones sobre el Archivo2" [master 2e37d7f] Modificaciones sobre el Archivo2 1 file changed, 2 insertions(+), 1 deletion(-) # resumen de cambios
Aqu tambin apreciamos un pequeo resumen de los cambios ocurridos. Un archivo cambi, tuvo 2 lneas insertadas y una borrada.
Rm
El comando git rm es un comando particular, a mi juicio poco utilizado pero importante conocer sobre l. Al igual que el comando Rm de Unix sirve para borrar un archivo pero en este caso sirve para agregar al escenario el archivo que vayamos a borrar. Veamos el siguiente ejemplo:
1 2 3 4 5 6 7 8 9 10
$ rm Archivo1.txt # borramos el archivo. $ git status # On branch master # Changes not staged for commit: # NO se encuentra en escenario # (use "git add/rm <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # deleted: Archivo1.txt # Archivo eliminado pero no en escenario # no changes added to commit (use "git add" and/or "git commit -a")
Podemos observar que al utilizar el comando rm de Unix (en mi caso) hemos borrado satisfactoriamente el Archivo1.txt pero esto an no se encuentra en escenario.
1 2 3 4 5 6 7 8
$ git rm Archivo1.txt $ git status # On branch master # Changes to be committed: # En escenario # (use "git reset HEAD <file>..." to unstage) # # deleted: Archivo1.txt #
Ahora utilizamos el comando git rm automticamente confirmamos que realmente queremos eliminar dicho archivo. lo ltimo que nos resta es consolidar los cambios.
1 2 3 4
$ git commit -m "Eliminar el Archivo1" [master 0f8a083] Eliminar el Archivo1 1 file changed, 1 deletion(-) delete mode 100644 Archivo1.txt
Mv
El comando git mv funciona de la misma manera que el comando git rm, confirma cualquier cambio de nombre o movimiento de un archivo. En esta oportunidad vamos a simplificar un paso no utilizando el comando mv del sistema operativo sino directamente iremos por el comando de Git.
1 2 3 4 5 6 7 8 9 10 11 12
$ git mv Archivo2.txt Archivo2_cambio_de_nombre.txt # Cambio de nombre $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # renamed: Archivo2.txt -> Archivo2_cambio_de_nombre.txt # $ git commit -m "Cambio de nombre del archivo 2" # Consolidar en BD [master 5a13514] Cambio de nombre del archivo 2 1 file changed, 0 insertions(+), 0 deletions(-) rename Archivo2.txt => Archivo2_cambio_de_nombre.txt (100%) # resumen
Este comando realiza el cambio de nombre a nivel de sistema operativo y a su vez confirma los cambios subiendo el archivo al escenario. Para consolidarlos posteriormente.
If you have decided not to use the recommended HTTPS method, we can use SSH keys to establish a secure connection between your computer and GitHub. The steps below will walk you through generating an SSH key and then adding the public key to your GitHub account.
Check the directory listing to see if you have a file named either id_rsa.pub or id_dsa.pub . If you don't have either of those files go to step 2. Otherwise, you already have an existing keypair, and you can skip to step 3.
# Enter passphrase (empty for no passphrase): [Type a passphrase] # Enter same passphrase again: [Type passphrase again]
1.
2.
5.
Don't worry, this is supposed to happen. Verify that the fingerprint matches the one here and type "yes".
# Hi username! You've successfully authenticated, but GitHub does not # provide shell access.
If that username is correct, you've successfully set up your SSH key. Don't worry about the shell access thing, you don't want that anyway. If you see "access denied" please consider using HTTPS instead of SSH. If you need SSH start atthese instructions for diagnosing the issue.