Git y Github - Resumen
Git y Github - Resumen
Índice
Git y Github 1
Git 3
Instalación de GIT 3
Repositorio Local 4
Confirmando archivos 6
Repasando 7
GitHub 8
Ramas o Branches 19
Creando Ramas 19
1
Git checkout 20
Comandos Básicos 21
2
Git
Git es un Software de control de versiones diseñado por Linus Torvalds. Y, entonces ¿a
qué le llamamos sistema de control de versiones?
Un Sistema de Control de versiones (VCS por sus siglas en inglés - Version Control
System) es una herramienta de software que monitorea y gestiona cambios en un sistema
de archivos. Asimismo, un VCS ofrece herramientas de colaboración para compartir e
integrar dichos cambios en otros usuarios del VCS.
Como un VCS opera a nivel de sistema de archivos, esté monitoreará las acciones de
adición, eliminación y modificación que se producen en archivos y directorios no vacíos.
Git es uno de los VCS que existen (otros son: Mercurial, SVN y Preforce), sin embargo es
el más utilizado en el ambiente de desarrollo de software.
Instalación de GIT
¿Cómo saber si Git está instalado? Si estamos usando una Mac o tenemos un sistema
operativo basado en Linux, lo más probable es que ya esté instalado. En caso de tener
Windows, debemos instalar Git Bash.
Para ello utilizamos el comando git --version. Si este comando nos genera algún error es
que no tenemos instalado Git.
3
Repositorio Local
Para crear un repositorio desde cero, podemos ejecutar el comando git init
Podemos comprobar que nuestro repositorio ya está activo, viendo el nombre de la rama
principal (main) o (master). Si estamos en Linux o Mac, tal vez no sea visible.
En todo caso, con el comando ls -a podemos listar los archivos ocultos de este directorio y
allí nos debería aparecer la carpeta .git
Una vez que ya tenemos inicializado el repositorio, antes de crear carpetas y archivos es
aconsejable configurar nuestro usuario y mail para que git nos reconozca como autores
de las versiones del proyecto (este paso se puede realizar también una vez que ya
tengamos archivos y directorios creados).
4
Si queremos que ese usuario y contraseña quede predeterminado para todos los
repositorios que voy a crear, utilizaremos el flag --global:
Una vez que creamos archivos y/o directorios en nuestro repositorio, el proceso de
seguimiento comienza. Git necesita que le digamos qué archivos queremos guardar en
nuestra primera versión. Por lo que los archivos creados estarán sin seguimiento hasta
que especifiquemos lo contrario.
Como podemos apreciar, todos los archivos aparecerán en estado “untracked” o sin
seguimiento.
Los archivos que queremos que estén en la próxima versión necesitarán pasar primero
por el estado de “en seguimiento” o “staging”, antes de ser confirmados. Para ello
utilizaremos el comando git add:
5
git add .
Si ejecutamos git add . y luego git status, veremos que ya nuestros archivos están en el
staging area:
Confirmando archivos
Para agregar archivos y directorios a una versión utilizaremos el comando git commit,
seguido del flag -m y especificaremos un mensaje significativo sobre la versión. Por
ejemplo:
6
utilizamos el comando git log
Con cada commit que hacemos, git básicamente toma una foto del aspecto de todos
nuestros archivos en ese momento y guarda una referencia a esa foto. Si los archivos no
se han modificado, Git no almacenará estos archivos de nuevo. Git maneja los cambios
en un repositorio como una secuencia de fotos instantáneas.
Repasando
El manejo de Git se basa en tres estados principales por los que pueden pasar los
archivos una vez creados o modificados: confirmado (committed), modificado (modified) y
7
en seguimiento (staged o en staging area).
GitHub
Github es una plataforma colaborativa en la nube que nos va a permitir llevar un control
de versión sobre nuestros proyectos.
Hasta ahora creamos un repositorio local, pero con Github vamos a poder crear a partir de
ese repositorio local, uno remoto, o copiar uno remoto a nuestra computadora.
8
Clickeamos al costado de la foto de nuestro perfil y hacemos clic en “Your repositories”
9
Ahora tendremos nuestro repositorio vacìo:
10
Vinculando el repositorio remoto con el local
Para chequear que efectivamente se haya vinculado el repositorio escribimos git remote
-v. Debería mostrarnos el repositorio conectado:
Antes de subir los archivos a Github, debemos crear un nuevo token en Github. Un token
de acceso personal, son una alternativa al uso de contraseñas para la autenticación en
Github. Para ello vamos al menú desplegable de nuestra cuenta y de allí a settings:
11
Una vez en settings, bajamos hasta la última opcion del menù de la izquierda, “Developer
Settings”
12
Y luego en Generate new token:
13
Es muy importante que elijamos al menos un scope o ámbito antes de guardar el token,
sino no tendremos los permisos necesarios para subir cambios a los repositorios.
En la siguiente pantalla nos mostrará por ÚNICA VEZ el nuevo token creado
Ahora podemos subir los archivos creados en nuestro repositorio local al repositorio
remoto que creamos en Github. Para ello utilizaremos el comando git push:
14
Veremos una leyenda como ésta, que nos especifica que los cambios ya fueron subidos al
repositorio remoto. Si vamos al repositorio en Github veremos los mismos archivos que
tengo en mi computadora
Ahora cada vez que hagamos cambios en nuestro repositorio local, haremos git add, git
commit para crear una nueva versión y git push para subir a Github.
Otra forma de vincular un repositorio local con uno remoto es clonar un repositorio
existente a nuestra computadora local. Para ello, buscamos un repositorio ya existente y
presionamos en el botón “Code”, acá nos abrirá una ventana con las opciones para clonar
el repositorio:
15
Acá nos brinda tres formas de clonar el repositorio, por HTTPS, con el protocolo SSH y a
través del Github CLI. Nosotros utilizaremos HTTPS. Copiamos el código y vamos al git
bash.
Ahora listamos los directorios y tiene que aparecer uno con el nombre del repositorio:
16
Ingresamos a ese directorio y allí recién estaremos dentro del repositorio clonado.
17
Ramas o Branches
En Git las ramas o branches son espacios o entornos independientes que nos permitirán
trabajar sobre un proyecto sin alterar o borrar el conjunto de archivos originales del
proyecto.
Hasta ahora vimos que el que creamos tiene por defecto una rama principal llamada Main
o Master —dependiendo de la versión de Git— en la cual vamos guardando las versiones
de nuestro trabajo cada vez que hacemos un commit.
Creando Ramas
Para crear una nueva rama utilizamos el comando git branch. Git branch nos permite
crear, enumerar, cambiar el nombre y eliminar ramas. No permite cambiar entre ramas o
volver a unir un historial bifurcado.
git branch
Elimina la rama llamada <branch>. Git evita que eliminemos la rama si tiene cambios que
aún no se han fusionado con la rama Main.
18
git branch -D <branch>
Generalmente, Git solo permitirá que nos movamos a otra rama si no tenemos cambios.
Si tenemos cambios, para cambiarnos de rama, debemos:
Una vez que terminamos de realizar los cambios que queremos en nuestra branch,
ejecutamos los mismos comandos que vimos hasta ahora: git add, git commit, git status y
git log. Pero cuando queramos subir esos cambios, debemos utilizar git push con el
nombre de la rama en que estamos posicionados:
Así también, para traer los cambios de esa rama utilizamos el git pull agregando desde
donde queremos traer los cambios:
19
git merge branch
Comandos Básicos
git status: Nos permite ver el estado de nuestros archivos.
git commit: envía al local repository todos los archivos que fueron agregados.
git remote -v: Nos permite chequear si el repositorio local esta vinculado a un remoto
git remote add origin URL: permite enlazar un repositorio local con uno remoto (se debe
haber creado con anterioridad).
git reset head: quita los archivos de la zona staged y/o los devuelve a su estado anterior.
git rm: Nos permite eliminar el archivo del working directory pero no lo elimina del historial
ya almacenado en git.
git rm –cached: Nos permite mover los archivos al estado anterior o untrucked.
git rm –force: Nos permite eliminar los archivos de git y del disco duro.
20
git checkout -b “nombre” crea y se cambia en el mismo paso.
Por ejemplo:
git diff –staged: vemos los cambios por etapas entre dos versiones.
21