Introducción a los Clientes Git GUI y Github (Sourcetree y SmartGit)
Table of Contents:
- 1 - ¿Qué es Git?
- 2 - ¿Qué es un Cliente Git GUI?
- 3 - Conceptos básicos de Git
- 4 - Commandos Git de transporte de datos
- 5 - Diferentes "workflows"/"Branching Strategies" usando Git
- 6 - Ejemplo HTML con Git Commit Graph (Imagenes)
- Create master Branch with empty index.html
- Create h1 Branch and write Heading 1 on index.html
- Create h2 Branch and "Better" h2 Branch
- Write on empty index.html the Heading 2 (on the h2 Branch)
- Write on empty index.html the "Better" Heading 2 (on the "Better" h2 Branch)
- Create the paragraph Branch and write A Paragraph on empty index.html
- Merge h2 with "Better" h2 - 3-way merge
- Merge h1 with master (the "empty" index.html) - Fast Forward Merge
- Merge master (index with h1) with paragraph - 3-way merge
- Merge master (h1 & paragraph) with "Better" h2 (Final File) - 3-way merge
- 7 - Ejemplo HTML con Sourcetree (mi Video)
- 8 - Ejemplo HTML con SmartGit (Video)
- Z) Glossary
1 - ¿Qué es Git?
Git es un tipo de sistema de control de versiones (VCS).
Su arquitectura es distribuida, ya que se permite la colaboración de múltiples programadores con un clon local, pero solo el administrador de repositorio puede aceptar o rechazar cambios propuestos por los desarrolladores mediante solicitudes de extracción (pull requests) o parches.
Un VCS permite guardar y registrar cambios en los archivos a lo largo del tiempo.
2 - ¿Qué es un Cliente Git GUI?
Un cliente Git GUI es una herramienta que ayuda a los desarrolladores a visualizar sus repositorios de Git y ejecutar acciones de Git con unos simples clics del mouse o atajos de teclado.
Es común que los desarrolladores nuevos y experimentados aprovechen una GUI de Git en su flujo de trabajo habitual.
Algunos ejemplos son:
- Sourcetree
- SmartGit
- GitKraken
- TortoiseGit
- etc
3 - Conceptos básicos de Git
• Repositorios remotos
Son versiones del proyecto que están hospedadas en Internet o en cualquier otra red.
• Clon local
Una copia integral de todos los datos del repositorio remoto, para trabajar de forma local
• Staging Area (index)
El área donde se prepara que cambios se aplican al siguiente commit. En otras palabras, es una capa intermedia donde se preparan los cambios para el próximo commit.
• Workspace
Es el directorio local en donde se trabaja con los archivos del proyecto. Es el directorio donde los archivos se editan y modifican.
• Git Stash
Es donde puedes almacenar temporalmente una captura de tus cambios sin enviarlos al repositorio.
• Commits
Son snapshots que se crean con el comando git commit para capturar el estado de un proyecto en ese momento.
• Branches
Son un pointer que apunta a un commit.
• HEAD pointer
Es un pointer que apunta a una rama y sirve para hacer el check out.
• Detached HEAD
Un HEAD pointer que apunta a un commit en lugar de a una rama.
• Merging
Integrar las ramas a una sola rama
a) Fast Forward merge
Fusión directa cuando hay un proceso lineal desde el extremo de la rama actual hasta la rama de destino.
b) 3-way merge
Fusión que requiere solución de conflictos dado a que hay bifurcación de ramas.
c) Merge conficts
Sucede cuando las dos ramas que tratas de fusionar han cambiado la misma parte del mismo archivo, Git no podrá averiguar qué versión utilizar.
• Forking
Se encarga de la creación de una copia de un repositorio en la cuenta de usuario.
• Amending
Sirve para modificar y arreglar un commit sin generar un nuevo commit.
• Rebasing
Es el proceso de adelantar o combinar una secuencia de commits a un nuevo commit base.
• Cherry-picking
Es el acto de seleccionar un commit de una rama y aplicarlo a otra rama.
• Squashing
Es una forma de reescribir el historial de commits; esta acción ayuda a limpiar y simplificar antes de compartir su trabajo con los miembros del equipo. Se está tomando los cambios de un commit y agregándolos a un commit principal.
4 - Commandos Git de transporte de datos
5 - Diferentes "workflows"/"Branching Stategies" usando Git
• Basic workflow
• Gitflow
• Multiple version workflow
6 - Recursos de Aprendizaje recomendados 🔗
-
YouTube: https://youtu.be/uR6G2v_WsRA
A) Create master Branch with empty index.html
B) Create h1 Branch and write Heading 1 on index.html
C) Create h2 Branch and "Better" h2 Branch
D) Write on empty index.html the Heading 2 (on the h2 Branch)
E) Write on empty index.html the "Better" Heading 2 (on the "Better" h2 Branch)
F) Create the paragraph Branch and write A Paragraph on empty index.html
G) Merge h2 with "Better" h2 - 3-way merge
H) Merge h1 with master (the "empty" index.html) - Fast Forward Merge
I) Merge master (index with h1) with paragraph - 3-way merge
J) Merge master (h1 & paragraph) with "Better" h2 (Final File) - 3-way merge
7 - Ejemplo HTML con Sourcetree (mi Video 🎦)
((insert my video here))
8 - Ejemplo HTML con SmartGit (Video 🎦)
Z) Glossary
File | Definition |
---|