Instalamos Git
https://git-scm.com/downloads/win
En el instalador seleccionamos que utilicemos VIM como el editor por default
También seleccionamos la opción “Git from the command line and also from 3rd party software” y todas las opciones de SSH.
Inicilizar un proyecto
Necesitamos dos programas opciones:
- cmder
- GitKraken
- Visual Studio Code
Para crear un nuevo repositorio nos situamos en nuestra carpeta con CMDER y ejecutamos el siguiente comando
git init
Esto creara una carpeta llamada [.git],e n visual studio creamos un elemento [index.html]
Para saber el estatus de los archivos ejecutamos
git status
Los elementos no trackeado se mostraran en rojo, para añadirlo al trackeo usamos el comando:
git add index.html
Luego volvemos a ejectuar [git status] y se mostrará en verde, veremos que no hay commits, para crear la instantánea usamos el siguiente comando con el parámetro -m que es el que define el mensaje:
git commit -m "Se crea el archivo index.html"
Volvemos a editar nuestro archivo index.html y posteriormente ejecutamos nuevamente el comando :
git status
esto nos mostrara la leyenda de «modified» y en color rojo, lo cuál quiere decir que hubo cambios y no se han commiteado.
Para hacer un commit de todos los archivos podemos ejecutar el siguiente comando:
git add --all
y posteriormente un git commit -m
GitKraken
Bajamos el git client para windows
- Github es para tener repositorios en la nube y son publicos
- Gitbucket sirve para tener repositorios privados
Abrimos nuestro repositorio, seleccionando la carpeta, veremos nuestros commits:

Para ver cambios, seleccionamos el comit en el panel central y posteriormente vamos al panel inferior del lado izquierdo, seleccionamos el archivo y veremos los cambios:

Para probar el tracking de cambios, regresamos al visual studio y editamos el titulo añadiendo cualquier texto, regresamos a gitkraken y se mostrará de la siguiente manera:

añadimos el commit message desde git kraken

GitHub
Creamos un repositorio públic en github, dejamos las opciones por default. Una vez hecho esto, tenemos que actualizar nuestro repositorio local al de github, para eso nos dará 3 opciones
- Crear uno nuevo y enlazar
- Enlazar uno existente
- Importar desde otro repositorio
En nuestro caso será la opción de enlazar, para eso copiamos el código y lo ejecutamos en Cmder:
git remote add origin https://github.com/resback/GitCeroAExpertoProyect.git
git branch -M main
git push -u origin main
Para validar ejecutamos el siguiente comando:
git remote -v
Nos mostrará el fetch y push:

Ahora en GitKraken hacemos un Push y regreamos al panel web de github para refrescar la página y veremos el contenido de nuestro repositorio que hicimos en nuestro local.
Crear una nueva rama
Para crear una nueva rama nos vamos al panel izquierdo donde tenemos nuestra ramas (localk) y damos click izquierdo en la opción «Create branch here» y le asignamos un nombre, en este caso «develop». Posteriormente la pusheamos
Unir ramas
Para unir ramas , estando en la rama a unir, damos click derecho en la otra rama que agregaremos los cambios, le damos la opción «Merge develop into master» y generará un commit con los archivos modificados
Nos posicionamos en la rama destino (checkout) y hacemos el push para confirmar los cambios
Clonar repositorio
Para emular un equipo, creamos una carpeta llamada «devs» y creamos dos subcarpetas con el nombre de los respectios devs, en mi caso Artemisa y Apolo.
En GitKraken nos vamos [File > Clone Repository ] y seleccionamos la URL y el folder destino
En consola con Cmder, ejecutamos el siguiente comando:
git clone https://github.com/resback/GitCeroAExpertoProyect
Para enviar cambios al servidor central
git push
Para obtener cambios del servidor central
git pull
Para saber en que rama estoy:
git branch
Resolución de conflictos
Cuando dos usuarios editen el mismo archivo y mismas líneas, al realizar el pull/push se generará un conflicto y git no podrá resolver, con la ayuda de git kraken podremos hacer la resolución de manera más fácil con la ayuda visual simplemente damos click en el archivo del recuadro derecho (Conflicted files):

Y de desplegará lo siguiente:

Una vez resuelto los conflictos damos click en Save
Ignorar archivos trackeados
Simplemente damos click en el archivo y podemos ignorar ese archivo o todos los que contengan dicha extensión.

Posteriormente se creará el archivo .gitignore el cual contiene el siguiente dato:
*.config
Git Stash – Guardar cambios para ser commiteados posteriormente
Es un área para almacenar cambios temporalmente para poder ser enviados al repositorio después.
Para guardar tus cambios en el stash, ejecuta el comando:
git stash save "mensaje opcional para ti"
o de forma visual en Git Kraken:

Para visualizar mediante comando los cambios pendientes:
git stash list

Tags
Sirve para asignar versiones a los commits de mayor importancia, por ejemplo, la conclusión de una versión
Comandos básicos:
Listar etiquetas:
$ git tag
Crear una etiqueta, con el parámetro -a para crear una y posterior -m paara especificar un mensaje:
$ git tag -a v1.4 -m 'my version 1.4'
En gitKraen podemos hacerlo simplemente dando click secundario en el commit y seleccionar «Create tag here»:

Para subirlo al repositorio del panel izquierdo, en la sección de tags damos click secundario:

Gitflow

Para habilitar gitflow le damos en Preference > Gitflow

Ahora en nuestro proyecto tendremos estas opciones disponibles:

Referencias:
Aprende a dominar Git de cero a experto!
https://www.udemy.com/course/aprende-a-dominar-git-de-cero-a-experto/
Diferencia Entre Git Rebase Y Git Merge , Workshop De Git .
https://medium.com/@MiguelCasas/diferencia-entre-git-rebase-y-git-merge-workshop-de-git-8622dedde2d7
Git Stash Explicado: Cómo Almacenar Temporalmente los Cambios Locales en Git
https://www.freecodecamp.org/espanol/news/git-stash-explicado/
2.6 Fundamentos de Git – Etiquetado
https://git-scm.com/book/es/v2/Fundamentos-de-Git-Etiquetado