Sunteți pe pagina 1din 11

Control de versiones: permite a 50 personas modificar el cdigo al mismo tiempo.

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.

Configuracin del email


Git hace uso del email del usuario cuando consolida la data, por esta razn necesitamos configurarlo:

1 $ git config --global user.email "pedroperez@ejemplo.com"

Podemos revisar que estn bien escritos haciendo uso del siguiente comando:

$ git config --list 1 2 3 user.name=Pedro Perez

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:

1 $ cat ~/.gitconfig 2 [user] 3 4 name = Pedro Perez email = pedroperez@ejemplo.com

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:

1 $ mkdir Ejemplo && cd Ejemplo 2 $ git init .

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.

Agregar archivos al escenario


Con nuestro repositorio listo, queremos llevar el control de nuestro primer archivo. Para esto debemos crearlo dentro de nuestra carpeta Ejemplo y agregarlo al escenario:

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:

1 $ git commit -m "Commit Inicial"

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:

1 $ git status 2 On branch master 3 nothing to commit, working directory clean

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.

Generating SSH Keys



MAC WINDOWS LINUX ALL

Skip this guide. Download our native app instead.


Download GitHub for Windows

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.

Step 1: Check for SSH keys


First, we need to check for existing ssh keys on your computer. Open up Git Bash and run:
cd ~/.ssh ls # Lists the files in your .ssh directory

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.

Step 2: Generate a new SSH key


To generate a new SSH key, enter the code below. We want the default settings so when asked to enter a file in which to save the key, just press enter.
ssh-keygen -t rsa -C "your_email@example.com" # Creates a new ssh key, using the provided email as a label # Generating public/private rsa key pair. # Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter] ssh-add id_rsa

Now you need to enter a passphrase.


Why do passphrases matter?

# Enter passphrase (empty for no passphrase): [Type a passphrase] # Enter same passphrase again: [Type passphrase again]

Which should give you something like this:


# Your identification has been saved in /c/Users/you/.ssh/id_rsa. # Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. # The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

Step 3: Add your SSH key to GitHub


Run the following code to copy the key to your clipboard.
clip < ~/.ssh/id_rsa.pub # Copies the contents of the id_rsa.pub file to your clipboard

1.

Go to your Account Settings

2.

Click "SSH Keys" in the left sidebar

3. Click "Add SSH key"

4. Paste your key into the "Key" field

5.

Click "Add key"

6. Confirm the action by entering your GitHub password

Step 4: Test everything out


To make sure everything is working you'll now SSH to GitHub. When you do this, you will be asked to authenticate this action using your password, which for this purpose is the passphrase you created earlier. Don't change the git@github.com part. That's supposed to be there.
ssh -T git@github.com # Attempts to ssh to github

You may see this warning:


# The authenticity of host 'github.com (207.97.227.239)' can't be established. # RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. # Are you sure you want to continue connecting (yes/no)?

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.

S-ar putea să vă placă și