Índice de la documentación

// Documentación de Singularity

Grafo, ramas y tags

El grafo Git hace que el historial de un repositorio sea legible y accionable. Conecta commits, ramas, worktrees, referencias remotas, tags y stashes, mientras que las pestañas Branches y Tags ofrecen una vista dedicada para administrar esas referencias.

La pestaña Graph

Desde el cockpit Git de un proyecto, elige Graph para abrir el historial en el Hangar. Cada fila representa un commit. La columna gráfica conecta sus padres: una línea que se separa indica una divergencia; varias líneas que se unen en un mismo nodo indican un commit de fusión. Las demás columnas muestran el mensaje, el autor y la fecha.

Los colores sirven para seguir visualmente un carril; no asignan prioridad ni estado a una rama. Las etiquetas nombran las referencias que apuntan al commit: rama local, rama remota, worktree, tag o stash. Para leer una fusión, parte de su nodo y sigue cada una de sus líneas padre hacia los dos historiales que une.

Grafo Git de Singularity que muestra ramas y una fusión en un repositorio de ejemplo
Los carriles de colores conectan los commits; las etiquetas indican las referencias que apuntan a ellos.

Buscar en el historial

El campo situado encima del grafo filtra los commits. Combina author:, path: y texto libre, con comillas para los espacios: author:grace path:src/git "graph page". Mientras escribes, aparecen sugerencias con los autores y rutas conocidos del repositorio. Borra la búsqueda para volver a ver el historial completo.

Búsqueda author:grace en el grafo Git de Singularity con la sugerencia de la autora Grace Hopper
Los filtros author: y path: se combinan con texto libre.

Seleccionar un commit

Selecciona una fila para abrir el detalle del commit. El panel muestra su mensaje completo, su autor, su fecha y la lista de archivos modificados. Elige después un archivo para consultar su diff: las adiciones, eliminaciones y líneas de contexto permiten entender con precisión el cambio.

Esta inspección no mueve ninguna rama ni modifica el árbol de trabajo. La acción Compare with working tree del menú contextual selecciona ese mismo commit como base de comparación.

Al hacer clic derecho en un commit siempre se ofrece: check out commit, fetch, pull the current branch cuando existe, compare with working tree, create a branch here, cherry-pick, reset the current branch en modo soft, mixed o hard, revert, copy SHA y create tag.

En una etiqueta de rama, el mismo menú añade según el contexto: cambiar de rama, pull, push, force push, fusionar la rama en la rama actual o al revés, hacer reset de la rama actual a esa referencia, bloquear o desbloquear, eliminar la rama local, su rama remota o ambas, quitar un worktree, eliminar una rama remota, filtrar el grafo por la rama o borrar ese filtro. En un tag, también permite eliminar el tag. En un stash, el menú dedicado ofrece apply, pop, eliminar y copiar la referencia del stash.

Reescritura del historial: los resets soft, mixed y hard mueven la rama actual; el modo hard además descarta los cambios sin commit. El push forzado reemplaza el historial remoto. Úsalos solo después de comprobar la referencia de destino y coordínate si la rama está compartida. Cherry-pick y revert añaden nuevos commits; las fusiones normalmente añaden un commit de fusión o avanzan la rama en fast-forward.

La pestaña Branches

Abre Branches desde el cockpit Git para recorrer las ramas locales, las remotas y las que usa un worktree. El filtro encuentra rápidamente un nombre; la rama activa y su rama upstream, si existe, aparecen señaladas.

El menú de una rama permite cambiar a ella, crear una nueva a partir de ella, renombrarla, bloquearla, mostrarla en el grafo, fusionarla o hacer reset de la rama actual a ella. Puedes publicar una rama, hacer pull desde su upstream o eliminar su copia local, remota o ambas. Al extraer una rama remota sin copia local se crea automáticamente la rama local que la sigue. Singularity pide confirmación antes de las operaciones peligrosas y protege las ramas bloqueadas.

Pestaña Branches de Singularity que muestra ramas locales y remotas de ejemplo
La vista Branches agrupa las referencias locales, las remotas y los worktrees.

Los tags

Abre Tags desde el cockpit para consultar todos los tags del repositorio. La lista indica el nombre, el SHA corto, la fecha, el mensaje y el autor cuando existen, así como su presencia local o en cada repositorio remoto. Filtra por nombre, mensaje o autor; haz doble clic en un tag, o usa Show on graph, para ir a su commit.

Para crear un tag, haz clic derecho en el commit deseado en el grafo y elige Create tag. El menú de un tag también permite eliminarlo localmente. Crear o eliminar un tag local no lo publica ni lo retira automáticamente de los repositorios remotos.

Buenas prácticas

En un repositorio con historial lineal, obtén primero las referencias remotas y después usa Pull (rebase) o haz rebase de tu rama de trabajo sobre la rama de destino antes de integrarla. Así conservas una secuencia de commits legible sin commits de fusión innecesarios.

  • Trabaja en una rama de corta duración y da a cada commit un objetivo claro.
  • Comprueba el árbol de trabajo y la referencia de destino antes de un reset, un cambio de rama o un rebase.
  • No hagas nunca un push forzado de una rama compartida sin coordinarte.
  • Prefiere revert para deshacer un cambio ya publicado: conserva el registro de la anulación.
  • Coloca los tags de versión en commits estables e identificables.

Preguntas frecuentes

¿Qué acciones reescriben el historial?

Los resets mueven la rama actual y pueden dejar commits inaccesibles. Un push forzado también reemplaza el historial remoto. El cherry-pick y el revert, en cambio, crean nuevos commits.

¿Por qué preferir un rebase en un repositorio lineal?

El rebase vuelve a aplicar los commits locales sobre la rama de destino y evita un commit de fusión. Aun así, no debes hacer rebase de commits ya compartidos sin coordinarte antes.