Close

GitK

Gitk es un navegador de repositorio gráfico. Fue el primero de este tipo. Se puede considerar como un contenedor de GUI para git log. Es muy práctico para explorar y visualizar el historial de un repositorio. Está escrito en tcl/tk, lo que lo hace trasladable entre distintos sistemas operativos. Paul Mackerras mantiene Gitk como un proyecto independiente, por separado del núcleo de Git. Dentro de la suite de Git se distribuyen versiones estables para la comodidad de los usuarios finales. Gitk puede ser práctico para el aprendizaje de los nuevos usuarios de Git.


Gitk overview


Gitk puede ser una práctica herramienta de aprendizaje para los usuarios nuevos en el control de versiones o para aquellos que están en transición desde otro sistema de control de versiones, como Subversion. Gitk es una utilidad que contiene el núcleo de Git. Proporciona una interfaz gráfica de usuario que ayuda a visualizar la mecánica interna de Git. Otras GUI populares para Git son git-gui y Sourcetree, esta última de Atlassian.

Uso


Gitk se invoca de manera similar a git log. Al ejecutar el comando gitk se lanzará la interfaz de usuario de Gitk, que tendrá un aspecto similar a este:

Initial kopiera

El panel superior izquierdo muestra las confirmaciones en el repositorio (la última, arriba). En la parte inferior derecha se muestra la lista de archivos afectados por la confirmación seleccionada. El panel inferior izquierdo muestra los detalles de la confirmación y la comparación de diferencias completa. Al hacer clic en un archivo en el panel inferior derecho, la comparación de diferencias del panel inferior izquierdo se centra en la sección correspondiente.

Gitk mostrará el estado actual del repositorio. Si el estado del repositorio se modifica con la línea de comandos por separado (por ejemplo, un cambio de ramas), será necesario volver a cargar Gitk. Gitk se puede volver a cargar en el menú File (Archivo) -> Reload (Volver a cargar).

bases de datos
Material relacionado

Cómo mover un repositorio de Git completo

Logotipo de Bitbucket
VER LA SOLUCIÓN

Aprende a usar Git con Bitbucket Cloud

Por defecto, Gitk renderiza el historial actual de confirmaciones. Gitk tiene diversas opciones de línea de comandos que se pueden pasar en la inicialización. Estas opciones restringen principalmente la lista de confirmaciones renderizadas en la vista de nivel superior de Gitk. La forma general de ejecución con estas opciones de revisión es la siguiente:

Opciones


    gitk [<options>] [<revision range>] [--] [<path>…]

    <revision range>

Se puede pasar un rango de revisión con el formato ".." para mostrar todas las revisiones entre y . También se puede pasar una sola revisión.

  <path>…

Limita las confirmaciones a una ruta de archivo específica. Para aislar las rutas de los nombres de revisión, separa las rutas de cualquier opción anterior con "--".

--all

Muestra todas las ramas, etiquetas y referencias.

--branches[=<pattern>] --tags[=<pattern>] --remotes[=<pattern>]

Displays the selected item (branches, tags, remotes) as if they were mainline commits. When <pattern> is passed, further limits refs to ones matching the specified pattern

    --since=<date>

Renderiza las confirmaciones que son más recientes que la fecha especificada.

    --until=<date>

Renderiza las confirmaciones que son anteriores a la fecha especificada.

    --date-order

Ordena las confirmaciones por fecha.

    --merge

Muestra las confirmaciones que modifican archivos en conflicto que se identificaron durante una fusión.

    --left-right

Renderiza etiquetas informativas que indican de qué lado de una comparación de diferencias proceden las confirmaciones. Las confirmaciones de la izquierda tienen el símbolo < y las de la derecha, el símbolo >.

    --ancestry-path

Cuando se tiene un rango de confirmaciones para mostrar (por ejemplo, commit1..commit2 o commit2 commit1), solo se muestran las confirmaciones que existen directamente en la cadena de antecesoras entre commit1 y commit2, es decir, confirmaciones que son descendientes de commit1, y antecesoras de commit2. Para ver una explicación más detallada, consulta "History simplification" (Simplificación del historial) en git-log(1).

L<start>,<end>:<file>

Son opciones eficaces para rastrear el historial de un rango de números de línea de código determinado.

Discussion & examples


Para proporcionar una salida utilizable, Gitk necesita un repositorio subyacente con un historial confirmado. El siguiente código es una secuencia de comandos bash que creará un nuevo repositorio con dos ramas que tienen confirmaciones y se han fusionado en una sola.

    mkdir gitkdemo &&
    cd gitkdemo &&
    git init . &&
    echo "hello world" > index.txt &&
    git add index.txt &&
    git commit -m "added index.txt with hello world content"

Este repositorio de demostración será un buen ejemplo que explorar con Gitk. Esta secuencia de comandos crea un nuevo repositorio con una confirmación y un archivo index.txt. Ahora vamos a invocar gitk para examinar el repositorio.

First commit

Can Gitk compare two commits?


Continuando con nuestro repositorio de demostración, vamos a crear una confirmación adicional:

 echo "prpended content to index" >> index.txt &&
    git commit -am "prepended content to index"

Once the proceeding commands are executed, gitk will need to be reloaded. Either reload gitk from the command line or use the GUI and navigate to File -> Reload. Once reloaded we should see our new commit.

Next commit

Podemos ver que la referencia de la rama main ahora apunta a la nueva confirmación. Para comparar estas dos confirmaciones, usamos el panel de historial superior izquierdo. Dentro del panel de historial, haz clic en la confirmación que será la base de la comparación de diferencias. Una vez seleccionada, haz clic con el botón derecho en una segunda confirmación para abrir un menú contextual.

Commit diff

Este menú contextual proporcionará las siguientes opciones:

    Diff this -> selected
    Diff selected -> this

Al seleccionar una estas opciones, aparecerá una comparación de diferencias entre las dos confirmaciones en el panel inferior izquierdo, que en nuestro ejemplo se verá así:

Diff output

La salida de la comparación de diferencias muestra que index.txt tenía una nueva línea de "contenido antepuesto al índice" añadido entre las dos confirmaciones.

How to use Gitk to compare two branches


Continuando con nuestro repositorio de ejemplo, vamos a crear una nueva rama.

    git checkout -b new_branch &&
    echo "new branch content" > new_branch_file.txt &&
    git add new_branch_file.txt &&
    git commit -m "new branch commit with new file and prepended content" &&
    echo "new branch index update" >> index.txt &&
    git commit -am "new branch commit to index.txt with new content"

La secuencia de comandos siguiente creará una nueva rama llamada new_branch y le añadirá el archivo new_branch_file.txt. Además, se añade contenido nuevo a index.txt y se realiza una confirmación adicional para esa actualización. Ahora tenemos una nueva rama que está 2 confirmaciones por delante de la main. Debemos volver a cargar Gitk para que estos cambios se reflejen.

New branch

Es una gran oportunidad de aprendizaje para hablar sobre el mecanismo de creación de ramas de Git. Gitk muestra las confirmaciones como una secuencia en línea recta. El término "branch" implica que debemos esperar una "rama" o bifurcación en la línea de tiempo. Las ramas de Git son diferentes de otros sistemas de control de versiones. En Git, una rama es un puntero que apunta hacia una confirmación. El puntero se mueve a las confirmaciones a medida que se crean. Cuando creas una git branch, no cambias nada en la estructura del repositorio o en el árbol de origen. Estás creando un nuevo puntero.

Para comparar las confirmaciones que difieren entre las 2 ramas, Gitk debe iniciarse con un rango de revisión determinado. Al ejecutar gitk main..new_branch, Gitk solo se abrirá con las confirmaciones entre las dos referencias de rama.

Compare branch

Esta es una utilidad muy eficaz para comparar ramas.

Diferencias entre Gitk y Git Gui


Git Gui is another Tcl/Tk based graphical user interface to Git. Whereas Gitk focuses on navigating and visualizing the history of a repository, Git Gui focuses on refining individual commits, single file annotation and does not show project history. Git Gui also supplies menu actions to launch Gitk for history exploration. Git Gui is also invoked from the command line by executing git gui.

Gitk summary


En conclusión, Gitk es un contenedor de interfaz gráfica para git log. Es muy eficaz para visualizar y explorar el historial de un repositorio. Además, es una herramienta útil para conocer los entresijos de Git.


Compartir este artículo
Tema siguiente

Lecturas recomendadas

Consulta estos recursos para conocer los tipos de equipos de DevOps o para estar al tanto de las novedades sobre DevOps en Atlassian.

Gente que colabora utilizando un muro lleno de herramientas

Blog de Bitbucket

Ilustración de Devops

Ruta de aprendizaje de DevOps

Demostraciones de funciones con expertos de Atlassian del Centro de demostraciones

Cómo funciona Bitbucket Cloud con Atlassian Open DevOps

Suscríbete para recibir el boletín de DevOps

Thank you for signing up