### **Índice del Manual de SourceTree**
1. **Introducción a SourceTree**
2. **Instalación y Configuración Inicial**
3. **Exploración de la Interfaz de SourceTree**
4. **Funciones Básicas de Git en SourceTree**
5. **Configuración de Git Flow en SourceTree**
6. **Uso de Git Flow en SourceTree**
7. **Consejos y Mejores Prácticas**
---
### **1. Introducción a SourceTree**
SourceTree es una herramienta gratuita de Atlassian para la gestión visual de repositorios Git y Mercurial. Permite trabajar de forma intuitiva con commits, branches, merges y otras operaciones comunes de Git. Además, ofrece soporte para flujos de trabajo avanzados como Git Flow, facilitando la organización de ramas y el manejo de versiones.
---
### **2. Instalación y Configuración Inicial**
#### **Instalación de SourceTree**
1. Visita la [página oficial de SourceTree](https://www.sourcetreeapp.com/).
2. Descarga el instalador adecuado para tu sistema operativo (Windows o macOS).
3. Ejecuta el instalador y sigue las instrucciones en pantalla para completar la instalación.
#### **Configuración Inicial**
1. **Inicia SourceTree**: Abre SourceTree una vez instalado.
2. **Crea o Inicia sesión en una cuenta de Atlassian**: Es necesario para usar la aplicación.
3. **Configura Git**: Ve a "Tools" > "Options" > "Git" para asegurarte de que tus credenciales de Git, como nombre de usuario y correo electrónico, estén configuradas correctamente.
---
### **3. Exploración de la Interfaz de SourceTree**
La interfaz de SourceTree tiene varias secciones clave:
- **Panel de Repositorios**: Muestra los repositorios locales y remotos.
- **Panel de Historial**: Muestra el historial de commits y las ramas en una vista gráfica.
- **Panel de Cambios**: Permite ver y seleccionar los cambios para crear un commit.
- **Botones de Acciones**: Contiene acciones comunes como Commit, Push, Pull, Merge, y Fetch.
---
### **4. Funciones Básicas de Git en SourceTree**
#### **Clonar un Repositorio**
1. En la pantalla de inicio de SourceTree, selecciona "Clone/New".
2. Introduce la URL del repositorio que deseas clonar.
3. Elige una ubicación en tu sistema para guardar el repositorio y haz clic en "Clone".
#### **Crear un Commit**
1. Realiza cambios en los archivos del repositorio.
2. En SourceTree, los archivos modificados aparecerán en la pestaña "Unstaged Files".
3. Selecciona los archivos que deseas incluir en el commit y muévelos a "Staged Files".
4. Escribe un mensaje de commit y haz clic en "Commit".
#### **Push y Pull**
- **Pull**: Trae los cambios más recientes desde el repositorio remoto.
- **Push**: Envía tus cambios al repositorio remoto.
#### **Resolución de Conflictos**
1. Si hay conflictos, SourceTree mostrará una advertencia y resaltará los archivos conflictivos.
2. Haz clic en el archivo conflictivo y selecciona "Resolve Conflicts" para utilizar herramientas de resolución integradas o abrir un editor de tu preferencia.
---
### **5. Configuración de Git Flow en SourceTree**
Git Flow es una metodología de ramificación que ayuda a gestionar el desarrollo de software mediante el uso de ramas específicas para features, releases y hotfixes. SourceTree permite activar Git Flow en un repositorio de manera fácil.
#### **Habilitar Git Flow en SourceTree**
1. Abre tu repositorio en SourceTree.
2. Ve a "Repository" en la barra de menú y selecciona "Git Flow".
3. Haz clic en “Initialize Git Flow”.
4. Configura las ramas principales de Git Flow:
- **Develop Branch**: La rama de desarrollo, donde se integran todas las nuevas funcionalidades.
- **Master Branch**: La rama estable, utilizada para releases.
---
### **6. Uso de Git Flow en SourceTree**
Con Git Flow activado, puedes utilizar SourceTree para gestionar tus ramas de forma estructurada. A continuación, se explican los pasos para las operaciones principales.
#### **Crear una Rama Feature**
1. Ve al menú de "Git Flow" y selecciona "Start New Feature".
2. Dale un nombre a la feature y haz clic en "OK" para crear la rama.
3. Realiza los cambios en la rama y haz commits normalmente.
4. Cuando la feature esté lista, selecciona "Finish Feature" en el menú de Git Flow para fusionarla en `develop`.
#### **Iniciar una Release**
1. En el menú de Git Flow, selecciona "Start New Release".
2. Dale un nombre a la release y haz clic en "OK".
3. Realiza los ajustes finales en la rama de release y haz commits.
4. Cuando esté lista, selecciona "Finish Release". Esto fusionará la release en `master` y `develop`, y creará un tag.
#### **Aplicar un Hotfix**
1. Selecciona "Start New Hotfix" en el menú de Git Flow.
2. Dale un nombre al hotfix y haz clic en "OK".
3. Realiza los cambios necesarios en la rama de hotfix.
4. Cuando el hotfix esté listo, selecciona "Finish Hotfix" para fusionarlo en `master` y `develop`.
---
### **7. Consejos y Mejores Prácticas**
- **Actualiza siempre el repositorio antes de crear nuevas ramas**: Esto ayuda a evitar conflictos y asegura que trabajas con la versión más actualizada.
- **Utiliza nombres descriptivos para las ramas**: Al crear features o hotfixes, utiliza nombres que indiquen claramente el propósito de la rama.
- **Documenta tus commits**: Escribe mensajes de commit claros y detallados, explicando los cambios y el motivo de cada modificación.
- **Aprovecha las herramientas de resolución de conflictos de SourceTree**: Las opciones gráficas facilitan la resolución de conflictos de forma precisa.
- **Utiliza Git Flow de manera consistente**: Mantén un flujo de trabajo constante con Git Flow para evitar problemas de sincronización y facilitar la colaboración en equipo.
- **Agrega tags en las releases**: Esto permite rastrear versiones y facilita el despliegue de versiones específicas.