Me llamo Elena y soy Adalaber.
He trabajado en BQ como programadora y maquetadora de front, y he realizado un máster en JavaScript y NodeJS.
Podéis encontrarme en varios proyectos de OSW (Open Source Weekends).
Twitter: @lpez_elena
GitHub: elenamlopez
Yo soy Jose, conocido como @MrCodeDev en twitter.
Soy Full Stack Junior y en mis ratos libres toco el chelo y hago fotos.
Me apasiona la tecnología y estoy profundizando en mis conocimientos como guilder de OSW
GitHub: mrcodedev
1. git status:
Git status nos dice el estado en el que se encuentran nuestros archivos. Si están sin seguimiento, si tienen seguimiento pero se han cambiado o si están en Stagin ya.
1. git add <archivo>:
Git add añade el archivo que le pasemos a stagin area, y que luego estará en el commit.
git add . agrega todo a stagin
Busca más formas de agregar a stagin =)
1. git commit -m "Mensaje del commit":
Con este comando hacemos un commit de los archivos que estén en stagin area.
Se hace una instantanea de los archivos en ese momento y se agrega a la cabecera (HEAD) quedando registrado y guardado como un punto en el tiempo.
1. git log:
Nos mostrará un log o histórico de commits realizados en este repositorio.
Copiarlo en un archivo de texto o similar puede ser una gran idea si piensas viajar en el tiempo de tu histórico...
Para salir de ahí pulsa q
1. git checkout <codigo_sha>:
Nos lleva al estado del repositorio en ese momento.
Para volver a donde estábamos tienes que coger el código SHA en el que te encontrabas.
No creas que viajo mucho en el tiempo...
1. .gitignore:
Es un archivo, en el que se ponen las carpetas y archivos de los que no deseamos que Git haga un seguimiento.
Por ejemplo aquellos archivos y carpetas con información sensible como tokens, o carpetas de instalación como node_modules.
#History files
.Rhistory
.Rapp.history
etc...
Todo tiene solución en Git.
Si te lías, rompes algo, subes lo que no debías, comiteas sin querer algo que no debías comitear... Has hecho un rebase forzado y la has liado parda...
¡¡¡ TODO SE PUEDE SOLUCIONAR EN GIT !!!
git checkout .
No se puede deshacer, porque se pierde la referencia totalmente, si haces eso sin haber guardado un commit, perderás (para siempre y doy fe) todos los cambios que hayas hecho.
El por qué aquí
Toma el estado en el que se encuentra el archivo y hace una derivación a otro espacio, de forma que se puede trabajar en él sin afectar al archivo inicial.
Más adelante podemos juntarlos.
Por ejemplo: git branch mi-rama
Por ejemplo: git checkout mi-rama
* Hay un comando para crear una rama y moverse directamente a ella:
$ git checkout -b [nombre_de_tu_rama]
Dentro de tu rama puedes trabajar normal, hacer tus commits y avanzar en el proyecto, pero lo que haces está sólo en esa rama.
Si cambias de rama sin más lo que hayas hecho en esa rama no lo vas a ver.
Para poder juntar todo tienes que mergear (fundir o fusionar) las ramas...
1. Todo se ha hecho bien y no hay problemas.
2. Cada uno ha tocado el mismo archivo por su cuenta y al mergear las ramas dan conflicto. Git no sabe que cambios son los que han de permanecer, y lo junta pero con conflicto...
En un mundo ideal lo suyo es ponerse de acuerdo en que hace cada uno. En caso de conflicto sentarse con la persona con la que nos ha surgido y determinar qué es lo que vale.
Pero si no es así toma la decisión , haz un Pull Request y solicita revisión de la persona con la que tienes el conflicto o espera a poder hablar con ella. Intenta no romper nada... X)
1. Resolver el conflicto.
2. Commitear cambios.
3. Subirlos.
4. Comprueba que todo está ok y que en tu rama están los cambios finales.
Estoy en master, me traigo feature-header y boom!!
git push origin <nombre-rama>
Una vez has terminado de trabajar con la rama, y tienes ya todo guardado y subido, mergea tu rama a donde corresponda, por ejemplo develop:
Pasos:
1. Hazte pull de la rama donde vas a meter tu rama.
2. Muévete a la rama donde vas a llevar tus cambios.
3. Haz merge de tu rama a la rama donde estás.
Mantener la higiene de ramas es algo importante. Si no vas a desarrollar una segunda release, o incluso un proyecto paralelo... cuando acabes con el trabajo de una rama... ¡¡¡MÁTALA!!! muaaahahahahahha... kill it, kill it, kill it...
git branch -D <nombre-rama>
Buena higiene:
Mala higiene:
Muy necesario, porque no sólo Microsoft me cae mal (alerta eufemismo), sino que además aun estoy superando el estado de shock post-traumático... bueno ya casi está.
Representación gráfica de mi persona cuando MrCodeDev me dio la noticia... Una noche dura
Tienes tu código en tú maquina, pero así sólo lo ves tu, pero puedes subirlo a un repositorio remoto.
Hay varios sitios donde hacerlo, pero nos vamos a fijar de momento en GitHub.
Con GitHub podemos compartir nuestro código y trabajar con otras personas. También podemos tener nuestro código alojado.
Tiene versión gratuita (tu código estará visible para todo el mundo) y de pago (puedes tener repositorios privados).
PASO 2: En esta página podéis seleccionar el plan y montar organizaciones.
PASO 3: Selecciona lo que quieras o sáltate el paso, que se puede :)
Al crear un nuevo proyecto os pide la confirmación de la cuenta. Hazla.
Cuando tienes un repo en remoto:
En resumen:
Cuanto más actualizada tengas la rama donde estás y tu repo, menos conflictos tendrás.
ANTES DE HACER PUSH HAZ PULL
En consola poner:
git remote add <nombre_para_remoto> <url>
¡¡¡¡¡ Cuando hagas push, recuerda hacerlo a ambos !!!!!!
(o tendrás un bonito caos...)
Mejor ponerle README...
Básicamente te haces una copia del repositorio en tu GitHub
$ git config --global user.name "nombre"
$ git config --global user.email "tu_mail@example.com"
$ git config --list
En local...
$ git config --global user.name "nombre"
$ git config --global user.email "tu_mail@example.com"
$ git config --list
$ git init
$ git clone <url del proyecto>
Esto es un vídeo de búhos por si en este punto la desesperación es patente...
^.^
He hecho cambios y hago un commit
Y aquí el botón para hacer PR
Si tienes permiso sobre el repo claro...
(overwiew)
Con esto ya tenemos seleccionado el control de versiones con Git
Con esto hemos creado un proyecto con Git inicializado.
Selecciona una plantilla de kamban normal o lo que prefieras.
^.^
Comandos básicos de git en castellano:
https://gist.github.com/ElenaMLopez/ca17cb107b6a3c51946279f8fd67327d
Libro de referencia: https://git-scm.com/book/es/v1
Chuleta de GitHub: https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf
Chuleta de muy pro: https://elbauldelprogramador.com/mini-tutorial-y-chuleta-de-comandos-git/#chuleta-de-comandos-git
Consola:
https://gist.github.com/ElenaMLopez/eec11d0d10fbceb446709d12927d0c27
Slides del taller de 4 horas:
Recordad que podéis ir al taller gratuito de Fictizia escuela del sábado 24 de Noviembre.
https://slides.com/elenam-lopez/no-liarla-parda-con-git-x-2
¡¡¡ Muchísimas gracias !!!