---
title: Integración con control de versiones
description: Trabajar con Git y otros sistemas de control de versiones
---

Verdent for VS Code se integra a la perfección con Git y otros sistemas de control de versiones, lo que permite operaciones de control de versiones en lenguaje natural, generación automática de mensajes de commit y gestión inteligente de ramas. Esta guía te muestra cómo aprovechar la integración con Git de Verdent para flujos de trabajo de control de versiones eficientes.

---

## Crear mensajes de commit significativos

Supón que hiciste cambios y quieres que Verdent genere un mensaje de commit descriptivo.

<Steps>
  <Step title="Solicitar un commit con un mensaje generado">
    ```
    Stage all changes and create a commit with an appropriate message
    ```

    Verdent analiza tus cambios usando git diff.
  </Step>

  <Step title="Verdent analiza los cambios">
    Verdent examina:
    - Los archivos modificados y su propósito
    - La naturaleza de los cambios (nueva función, corrección de errores, refactorización)
    - El alcance del impacto
    - La funcionalidad relacionada
  </Step>

  <Step title="Genera un mensaje de commit descriptivo">
    ```bash
    git commit -m "feat: add user profile image upload with S3 integration

    - Add file upload endpoint to user API
    - Integrate AWS S3 for image storage
    - Update user model with profileImage field
    - Add frontend image upload component with preview"
    ```

    El mensaje sigue el formato de commit convencional y describe lo que cambió.
  </Step>

  <Step title="Se crea el commit">
    Los cambios se confirman con el mensaje generado. Puedes revisar el commit:

    ```bash
    git log -1
    ```
  </Step>
</Steps>

<Tip>
  **Consejos:**
  - Verdent sigue los formatos de commit convencionales (feat, fix, refactor, docs, etc.)
  - Los mensajes de commit se centran en el "qué" y el "porqué", no en el "cómo"
  - Puedes personalizar el formato de los mensajes de commit en las reglas de usuario o las reglas de proyecto
  - Solicita estilos de mensaje de commit específicos: "Crea un commit con un mensaje detallado de varias líneas"
</Tip>

***

## Personalizar los formatos de los mensajes de commit

Supón que quieres que Verdent siga las convenciones de mensajes de commit específicas de tu equipo.

<Tabs>
  <Tab title="Reglas de usuario (globales)">
    Define las preferencias de mensajes de commit en `VERDENT.md` para todos los proyectos:

    ```markdown
    # VERDENT.md

    ## Git Commit Messages

    When generating commit messages:
    - Always include ticket number in format: [PROJ-123]
    - Use present tense verbs
    - Maximum 50 characters for first line
    - Include detailed explanation in body
    - Add "Co-authored-by" for pair programming sessions

    Example format:
    [PROJ-123] Add user authentication feature

    Detailed explanation of changes...

    Co-authored-by: Team Member <email@example.com>
    ```

    Verdent sigue estas reglas de forma global.
  </Tab>

  <Tab title="Reglas de proyecto">
    Define convenciones de commit específicas del proyecto en `AGENTS.md`:

    ```markdown
    # AGENTS.md

    ## Git Commit Conventions

    For this project, use conventional commits with these scopes:
    - feat(api): API changes
    - feat(ui): Frontend changes
    - fix(auth): Authentication fixes
    - docs(readme): Documentation updates

    Always reference GitHub issue: "Fixes #123" or "Relates to #456"
    ```

    Las reglas se aplican solo a este proyecto.
  </Tab>

  <Tab title="Instrucciones en línea">
    Proporciona instrucciones puntuales directamente:

    ```
    Create a commit with message format: "[TICKET-NUMBER] description" including reference to issue #42
    ```

    Verdent genera:
    ```bash
    git commit -m "[PROJ-42] Add search functionality

    Relates to #42"
    ```
  </Tab>
</Tabs>

<Tip>
  **Consejos:**
  - Las reglas de usuario se aplican de forma global a todos los proyectos
  - Las reglas de proyecto (AGENTS.md) anulan las reglas de usuario en proyectos específicos
  - Las instrucciones en línea anulan ambas para necesidades puntuales
  - Se recomienda el formato Conventional Commits para mantener la coherencia
</Tip>

***

## Crear pull requests

Supón que quieres que Verdent cree un pull request completo.

<Steps>
  <Step title="Asegúrate de que los cambios estén confirmados">
    ```
    Make sure all my changes are committed
    ```

    Verdent verifica el estado de git y confirma cualquier cambio sin confirmar.
  </Step>

  <Step title="Subir la rama al remoto">
    ```
    Push this branch to origin
    ```

    Verdent sube:
    ```bash
    git push origin feature/user-notifications
    ```
  </Step>

  <Step title="Solicitar la creación del PR">
    ```
    Create a pull request for this feature
    ```

    Verdent usa la CLI de `gh` para crear el PR.
  </Step>

  <Step title="Verdent genera la descripción del PR">
    Verdent analiza los commits y los cambios para generar:

    **Título:** Añadir sistema de notificaciones de usuario

    **Cuerpo:**
    ```markdown
    ## Summary
    - Implements real-time user notifications
    - Adds WebSocket support for instant delivery
    - Includes email fallback for offline users
    - Comprehensive test coverage

    ## Test Plan
    - [ ] Test real-time notifications in browser
    - [ ] Verify email fallback for offline users
    - [ ] Check notification persistence across sessions
    - [ ] Test with multiple concurrent users

    ## Changes
    - Added NotificationService with WebSocket integration
    - Created notification UI components
    - Integrated SendGrid for email notifications
    - Added notification preferences to user settings
    ```

    El PR se crea con una descripción completa.
  </Step>
</Steps>

<Tip>
  **Consejos:**
  - Verdent analiza todos los commits de la rama para generar la descripción del PR
  - Solicita formatos de PR específicos: "Crea un PR con un plan de pruebas detallado"
  - Incluye capturas de pantalla: "Añade esta captura de pantalla a la descripción del PR"
  - Puedes refinar la descripción del PR antes de crearlo: "Actualiza el PR para mencionar el cambio incompatible"
</Tip>

***

## Resolver conflictos de fusión

Supón que te encuentras con conflictos de fusión y necesitas la ayuda de Verdent para resolverlos.

<Steps>
  <Step title="Intentar la fusión">
    ```
    Merge main into this feature branch
    ```

    Se produce un conflicto de fusión:
    ```bash
    Auto-merging src/auth.ts
    CONFLICT (content): Merge conflict in src/auth.ts
    ```
  </Step>

  <Step title="Solicitar la resolución del conflicto">
    ```
    Help me resolve the merge conflict in src/auth.ts
    ```

    Verdent lee los marcadores de conflicto.
  </Step>

  <Step title="Verdent analiza ambas versiones">
    Verdent examina:
    - Los cambios de la rama actual (HEAD)
    - Los cambios entrantes (rama main)
    - El contexto alrededor de los conflictos
    - La intención de ambos cambios
  </Step>

  <Step title="Verdent propone una resolución">
    ```
    The conflict is between your JWT implementation and the main branch's session-based auth. I'll merge both approaches to support both authentication methods.
    ```

    Verdent resuelve el conflicto integrando ambos cambios de forma inteligente.
  </Step>

  <Step title="Marcar el conflicto como resuelto">
    ```bash
    git add src/auth.ts
    git commit -m "Merge main into feature/jwt-auth, resolved conflicts"
    ```

    El conflicto se resuelve y la fusión se completa.
  </Step>
</Steps>

<Tip>
  **Consejos:**
  - Verdent entiende el contexto del código para resolver los conflictos de forma inteligente
  - Revisa siempre las resoluciones de conflictos antes de confirmar
  - Para conflictos complejos, pídele a Verdent que explique primero ambas versiones
  - Prueba a fondo después de resolver los conflictos
</Tip>

<Tip>
Verdent analiza los conflictos de fusión entendiendo la intención de ambas ramas y sugiere resoluciones que preservan la funcionalidad de ambos lados.
</Tip>

***

## Gestionar ramas y etiquetas

Supón que necesitas gestionar ramas y crear etiquetas de versión.

<Tabs>
  <Tab title="Operaciones con ramas">
    **Crear y cambiar de rama:**

    ```
    Create a new branch called feature/user-notifications
    ```

    Verdent ejecuta:

    <CodeGroup>
    ```bash "Create New Branch"
    git checkout -b feature/user-notifications
    ```

    ```bash "Switch to Existing Branch"
    git checkout main
    ```

    ```bash "Create and Push Branch"
    git checkout -b feature/payment-integration
    git push -u origin feature/payment-integration
    ```
    </CodeGroup>
  </Tab>

  <Tab title="Fusión">
    **Fusionar ramas de funciones:**

    ```
    Merge the feature/user-notifications branch into main
    ```

    Verdent realiza el flujo de trabajo de fusión:
    ```bash
    git checkout main
    git pull origin main
    git merge feature/user-notifications
    git push origin main
    ```

    Verdent se asegura de que main esté actualizada antes de fusionar.
  </Tab>

  <Tab title="Etiquetar versiones">
    **Crear etiquetas anotadas:**

    ```
    Create an annotated tag for version 1.2.0 with release notes
    ```

    Verdent crea una etiqueta detallada:
    ```bash
    git tag -a v1.2.0 -m "Release 1.2.0

    New Features:
    - User notification system
    - Email integration
    - Real-time WebSocket support

    Bug Fixes:
    - Fixed authentication timeout issue
    - Resolved cart calculation bug"
    ```

    **Subir etiquetas:**

    ```
    Push all tags to origin
    ```

    Verdent sube:
    ```bash
    git push origin --tags
    ```
  </Tab>
</Tabs>

<Tip>
  **Consejos:**
  - Usa nombres de rama descriptivos: `feature/user-auth`, `fix/cart-bug`, `refactor/api-layer`
  - Trae siempre los últimos cambios antes de fusionar
  - Usa etiquetas anotadas para las versiones (incluyen metadatos)
  - Sigue el versionado semántico: v1.2.3 (mayor.menor.parche)
</Tip>

<Tip>
Las convenciones de nombres de rama coherentes ayudan a Verdent a entender tu flujo de trabajo. Define patrones en AGENTS.md para el cumplimiento automático.
</Tip>

***

## Preguntas frecuentes

<Accordion title="¿Verdent confirma automáticamente mis cambios?">
No. Verdent solo crea commits cuando lo solicitas explícitamente. Mantienes el control total sobre cuándo se confirman los cambios. Simplemente pide "Prepara todos los cambios y crea un commit" cuando estés listo.
</Accordion>

<Accordion title="¿Puedo editar el mensaje de commit antes de confirmar?">
Sí. Puedes pedirle a Verdent que revise el mensaje de commit antes de crearlo. Di "Actualiza el mensaje de commit para mencionar el cambio incompatible" o "Haz que ese mensaje de commit sea más conciso". Verdent regenerará el mensaje según tus comentarios.
</Accordion>

<Accordion title="¿Verdent funciona con GitHub, GitLab, Bitbucket y otras plataformas de Git?">
Sí. Verdent usa comandos estándar de Git, por lo que funciona con cualquier repositorio de Git independientemente de la plataforma de alojamiento. Para crear pull requests, Verdent usa la CLI de `gh`, que requiere GitHub, pero todas las demás operaciones de Git funcionan de forma universal.
</Accordion>

<Accordion title="¿Verdent subirá a los repositorios remotos sin preguntar?">
No. Verdent solo sube a los repositorios remotos cuando lo solicitas explícitamente. Todas las operaciones de Git (commit, push, merge, rebase) requieren tu instrucción explícita por seguridad.
</Accordion>

<Accordion title="¿Puede Verdent resolver todos los tipos de conflictos de fusión?">
Verdent puede resolver la mayoría de los conflictos de fusión basados en texto al entender el contexto y la intención del código. Los conflictos de archivos binarios o los conflictos muy complejos de varias vías pueden requerir intervención manual. Revisa siempre la resolución de conflictos de Verdent antes de confirmar.
</Accordion>

***

## Consulta también

<CardGroup cols={2}>
  <Card title="Ejemplos de tareas de varios pasos" icon="list-check" href="/docs/verdent-for-vscode/common-workflows/multi-step-tasks">
    Flujos de trabajo complejos de varios pasos y gestión de tareas
  </Card>

  <Card title="Escribir código nuevo" icon="code" href="/docs/verdent-for-vscode/task-based-guides/writing-code">
    Crear nuevas funciones y componentes con Verdent
  </Card>
</CardGroup>
