Introducción a los Clientes Git GUI y Github (Sourcetree y SmartGit)

#Git #GitHub #Version_Control

↩️ Go Back

Table of Contents:


1 - ¿Qué es Git?

30

Git es un tipo de sistema de control de versiones (VCS).
350

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.
350

Un VCS permite guardar y registrar cambios en los archivos a lo largo del tiempo.


2 - ¿Qué es un Cliente Git GUI?

35

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.
250

Algunos ejemplos son:


3 - Conceptos básicos de Git

• Repositorios remotos

Son versiones del proyecto que están hospedadas en Internet o en cualquier otra red.
250


• Clon local

Una copia integral de todos los datos del repositorio remoto, para trabajar de forma local
400


• 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.
250


• Workspace

Es el directorio local en donde se trabaja con los archivos del proyecto. Es el directorio donde los archivos se editan y modifican.
250


• Git Stash

Es donde puedes almacenar temporalmente una captura de tus cambios sin enviarlos al repositorio. 
300


• Commits

Son snapshots que se crean con el comando git commit para capturar el estado de un proyecto en ese momento.
350


• Branches

Son un pointer que apunta a un commit.
350


• HEAD pointer

Es un pointer que apunta a una rama y sirve para hacer el check out.
350


• Detached HEAD

Un HEAD pointer que apunta a un commit en lugar de a una rama.
300

300


• 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.
500

b) 3-way merge

Fusión que requiere solución de conflictos dado a que hay bifurcación de ramas.
500

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.
300


• Forking

Se encarga de la creación de una copia de un repositorio en la cuenta de usuario.
300


• Amending

Sirve para modificar y arreglar un commit sin generar un nuevo commit.
500


• Rebasing

Es el proceso de adelantar o combinar una secuencia de commits a un nuevo commit base.
300


• Cherry-picking

Es el acto de seleccionar un commit de una rama y aplicarlo a otra rama.
300


• 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.
350


4 - Commandos Git de transporte de datos

550


5 - Diferentes "workflows"/"Branching Stategies" usando Git

• Basic workflow

400

• Gitflow

400

• Multiple version workflow

400


6 - Recursos de Aprendizaje recomendados 🔗

- - - ## 7 - Ejemplo HTML con Git Commit Graph (Imágenes 📸)

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

350

350

350


7 - Ejemplo HTML con Sourcetree (mi Video 🎦)

((insert my video here))


8 - Ejemplo HTML con SmartGit (Video 🎦)


Z) Glossary

File Definition

↩️ Go Back