0% encontró este documento útil (0 votos)
83 vistas28 páginas

Curso Básico de Git y GitHub

Este documento explica los comandos básicos de Git y GitHub para el control de versiones de archivos. Describe cómo inicializar repositorios locales y remotos, realizar confirmaciones, fusionar ramas, resolver conflictos y conectar un repositorio local a GitHub utilizando llaves SSH.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
83 vistas28 páginas

Curso Básico de Git y GitHub

Este documento explica los comandos básicos de Git y GitHub para el control de versiones de archivos. Describe cómo inicializar repositorios locales y remotos, realizar confirmaciones, fusionar ramas, resolver conflictos y conectar un repositorio local a GitHub utilizando llaves SSH.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

CURSO DE GIT Y GITHUB

Son herramientas de control de versiones que se enfocan en guardar solo los cambios que se
hacen sobre archivos, dejando claro cuando ocurrieron, donde, quién los hizo, etc.

La extensión no determina si un archivo es un archivo es de texto plano, lo que lo determina es el


contenido, si es solo texto sin negrita ni estilos ni imágenes, es un texto plano

GIT (es el que se usa localmente, es decir, en mi máquina)

Comando git init nos permite empezar un repositorio en nuestra carpeta un repositorio, el cual es
una base de datos donde se van a guardar los cambios de cualquier archivo. Lo siguiente es que mi
repositorio tiene que saber que mis archivos existen para esto usamos el comando git add
nombrearchivo.extensión (biografía.txt). A partir de esto el sistema de control de versiones sabe
que existe el archivo. El comando git commit -m [versión numero] dice que nuestros cambios ya
están listos y los envía a la base de datos del sistema del control de versiones.

Cuando haga los cambios, tengo que volver a ejecutar

Si estoy en una carpeta con varios archivos y uso el comando git add . se van a guardar todos los
cambios que se hicieron en cada uno de los archivos de la carpeta, si quiero el cambio en solo uno
de los archivos uso git add nombrearchivo.extensión (biografía.txt)

Con el comando git status puedo ver cómo esta el estado de mi base de datos. Con el comando git
show muestra todo el historial de cambios en el repositorio. Si quiero el historial pero para solo un
archivo en especifico uso git log nombrearchivo.extensión (biografía.txt) Para llevar todo a un
repositorio remoto, se usa el comando git push

Terminal y línea de comando

El comando ls muestra una lista de los archivos y carpetas de donde estoy ubicado en la terminal,
si uso ls -al me muestra la lista de todo los documentos incluyendo los ocultos. El comando cd nos
permite navegar entre carpetas y muestra la carpeta en la que estoy actualmente, el comando
cd / se usa si quiero ir al home directamente, el comando pwd muestra la ruta de donde estoy.
Para crear carpetas usamos mkdir nombre carpeta Para crear un archivo vacío usamos el
comando touch nombrearchivo.extension Para poder ver el contenido de un archivo usamos
comando cat nombre.extension Con el comando history podemos ver todos los comandos que
hemos ejecutado.

Para borrar el documento que hemos creado usamos el comando rm nombre.extension TENER
CUIDADO CON ESTE COMANDO PORQUE SIN QUERER PODEMOS BORRAR EL DISCO DURO DEL PC.

Crear un repositorio
Primero debemos configurar git, para eso usamos el comando git config –global user.name “tu
nombre” luego hacemos lo mismo pero para el email git config –global user.email “tu correo”

Para verificar que lo hiciste bien usamos git config –list.

para crear un repositorio vas a la carpeta en donde lo quieres crear y usas el comando git init, para
confirmar de que sí se creo la carpeta usas ls -al Si queremos ver el estado actual del proyecto
usamos git status si los archivos están en rojo es porque no han sido añadidos, entonces lo que se
debe hacer es git add nombrearchivo.extension si quiero sacar el add uso git rm –cached
nombrearchivo.extension si ya hemos usado add pero hemos cambiado el archivo y nos
queremos devolver el add solo usamos git rm nombrearchivo.extension

si una vez que hagas add quieres mandar el archivo al repositorio, se usa el comando git commit -
m “mensaje que quieras” para ver el historial de todos los commits hechos al archivo, uso git log
nombre.extension si quieres ver específicamente los cambios que se han hecho a un archivo
usamos el comando git show nombre.extension ESTE COMANDO ES IMPORTANTE PARA CUANDO
SE HAYAN HECHO CAMBIOS A UN ARHIVO Y NO SE SEPA POR QUÉ SE ROMPIÓ.

Con el comando git log –stat podemos ver con mayor claridad los cambios que se realizaron, pero
para salirte de la pantalla que aparece debes presionar la letra q.

Si en algún momento me aparece esta pantalla

Este es el editor de código de la línea de comandos, para escribir en esta pantalla usamos esc+i
para salir de esa pantalla usamos esc + shift +zz

Para comparar commits, usamos el comando git diff #commit mas viejo (mas abajo) #commit
mas nuevo (mas arriba)
Stanging y repositorios

Ramas (branchs) y Merge

Devolvernos en nuestro repositorio con reset y checkout

Para devolver todo a un estado inicial usamos git reset [id commit] –hard (esto borra todos los
cambios) existe una forma en donde vuelve todo al estado anterior pero lo que estaba en la zona
staging sigue en esa zona, esto se hace cambiando –hard por –soft

Para no correr el riesgo de borrar todo con reset, podemos ver un archivo en su primera versión o
primer commit tomando el id del commmit y escribimos git checkout [id del primer commit]
archivo.extensión si queremos regresar al último commit que habíamos hecho antes de regresar a
una versión anterior, es decir, recuperar los cambios que habíamos hecho, usamos git checkout
master archivo.extensión
REPOSITORIOS REMOTOS

Flujo de trabajo en repositorios remotos

Cuando usamos un repositorio remoto, usamos git clone url con esto, lo que sucede es que
creamos una copia a la carpeta de trabajo y creamos una copia de todas las versiones en el
repositorio local

En este caso seguimos trabajando en nuestra máquina local y cuando ya tenemos todos los
commits listos, los mandamos al repositorio remoto con el comando git push

Cuando alguien hizo un cambio en el repositorio remoto y lo quiero traer ami repositorio local
usamos git fetch
Si lo que me interesa es traer un cambio desde el repositorio remoto al local y que se haga una
copia también en el directorio de trabajo usamos el comando git pull

Introducción a las ramas o branches de git


si tenemos archivos a los cuales les hemos hecho add previamente y luego cambiamos esos
archivos y no queremos volver a hacer add nuevamente, podemos saltarnos este paso con el
comando git commit -am “mensaje”

creemos una nueva rama


Para crear una nueva rama lo que debemos usar es git Branch [nombre de la
rama] para moverme a esta nueva rama lo que debo hacer es git checkout
[nombre de la rama] En este punto, si seguimos haciendo cambios, estos se
hacen en la nueva rama, de este modo si hago un git checkout master que
es básicamente devolverme a la rama master, no se tomaran en cuenta los
cambios que hicimos cuando estábamos trabajando en la rama nueva.
Fusión de ramas con merge
Cuando hacemos un merge lo que sucede es que la rama nueva que creamos
desaparece y se une a la ruta final del master. Ojo, el merge siempre ocurre
en la rama en donde estoy, por lo tanto debemos ubicarnos en la rama en la
cual queremos que ocurra el merge con el comando chekout. para ver las
ramas que están creadas usamos el comando git Branch, una vez ubicados en
la rama en la cual vamos a hacer merge, lo siguiente es hacer , merge [rama
que se va a fusionar con la rama en la que actualmente estoy]
Realmente merge es un tipo de commit en la rama en la cual estoy haciendo
la fusión .
Resolución de conflictos al hacer un merge
Un conflicto ocurre cuando la misma línea de código es modificada en ramas
diferentes.
GIT HUB
Creamos un nuevo repositorio y una vez creado, vamos a la sección clonar o código y
copiamos la dirección del enlace. Posteriormente vamos a git en nuestra computadora,
nos ubicamos en la carpeta de nuestro repositorio y usamos el comando git remote add
origin [enlace del repositorio creado en GitHub] luego de esto verificamos que se haya
creado el origin con el comando git remote y luego usamos git remote -v para tener los
enlaces de fetch que sirve para traernos cosas y un enlace para push que sirve para enviar
cosas
Subimos un proyecto a GitHub

Lo primero es hacer git pull origin master para traemos el repositorio remoto que ahora
es el master. Luego usamos git pull origin master –allow-unrelated-histories para
fusionar la rama remota y la local. Con el comando git push origin master le enviamos la
rama master local al repositorio remoto.
Si yo hago un cambio en GitHub y quiero que se cambie también en remoto, uso el
comando git pull origin master.
Para hacer commits en GitHub se hace en la sección
Llaves públicas y llaves privadas
Configura tus llaves SSH en local (tu computadora)
Para configurar una llava SSH lo primero es acomodar el correo de usuario de nestro git
con el comando git config –global user.email “tu email” hay que tener en cuenta que ese
email que pongas debe estar registrado en tu cuenta de GitHub.
Para crear una llave SSH se usa ssh-keygen -t rsa -b 4096 -C “tu email que esta asociado
con Git Hub” definimos el passphrase que es como una contraseña con espacios para
nuestra llave. Para ver nuestra llave, vamos a la ruta en donde la guardamos que es
recomendable que sea users/Edwar y buscamos la carpeta llamada .ssh ahí están mi llave
privada y mi llave pública
Ahora necesitamos saber si el servidor de llaves SSH este prendido, para esto debemos
usar el comando eval $(ssh-agent -s), ahora se necesita agregar la llave para esto nos
ubicamos en la carpeta de nuestra llave con cd ~/.ssh/ una vez en esa carpeta, usamos
ssh-add ~/.ssh/id_rsa
El proceso en Mac
Conexión a GitHub
Cuando tengas conectado el repositorio de GitHub con la llave publica con mi
coputadora,lo que sigue es ir a los repositorios nos metemos en clone or download y nos
metemos en use SSH y copiamos la dirección, luego vamos a la carpeta donde esta
nuestro repositorio en nuestra computadora, usamos git remote -v para ver las URL de
nuestros repositorios. Origin es un nombre opcional, cambiamos la URL usando el
comando git remote set-url origin [enlace SSH de GItHUb] luego tenemos que probar que
todo esta funcionando entonces para eso debemos usar el comando git pull origin master
que sirve para traer todo del origen y fusionarlo con la rama master luego hacemos un
cambio en el entorno local y le damos git commit -am “mensaje y posterior a esto
usamos el git push origin master.

Tags y versiones de Git y GitHub


para ver qué hemos hecho históricamente en nuestro proyecto usamos git log –all, con git
log –all –graph vemos lo mismo pero con otros detalles, y si damos git log –all –decorate
–oneline lo vemos mas compacto.
Como es un comando muy largo podemos compactarlo, para eso usamos alias [nombre
que quieras]= “git log –all –decorate –oneline “ ahora solo escribimos, [nombre que
quieras y aparece el comando]
para crear un tag que sirve para decir aquí fue donde quedé, usamos

Y la forma de saber a qué commit esta asociado el tag es con git show-ref –tags luego de
que tengas creado tu tag usas git pull origin master y luego git push origin –tags.
para borrar un tag primero chequeo que tags tengo con git tag luego uso git tag -d
[nombre del tag] una vez hagas esto usas git pull origin master y luego git push origin –
tags. Luego de esto usamos git push origin :refs/tags/[nombre del tag que quieres
borrar]
Manejo de ramas en GitHub
El git puedes ver el historial de ramas con git show-branch –all si quieres ver las ramas de
manera mas visual usas gitk para meter al remoto la rama cabecera hacemos

Creamos nuevas ramas con


Enviamos las ramas a Github

Configurar múltiples colaboradores en un repositorio de GitHub


Contratamos un nuevo programador y este necesita trabajar sobre el repositorio que ya
montamos en GitHub, para traerlo a su pc lo que hace es git clone [enlace HTTP] luego de
eso el dueño del repositorio en github debe añadir o dar acceso al nuevo programador,
para esto
Flujo de trabajo profesional: Haciendo merge de ramas de desarrollo a master
Ojo: al master se envía, solo lo que se considere que está listo para producción.
Tampoco se pueden poner en los repositorios archivos Binarios.

Flujo de trabajo profesional en pull requests

Cuando se modifica una rama, también se modifica el pull request


Utilizando pull request en GitHub

También podría gustarte