Pregunta Bastante git gráficos de rama


He visto algunos libros y artículos que tienen gráficos muy bonitos de git branches y commits. ¿Cómo puedo hacer imágenes imprimibles de alta calidad de la historia de Git?


978
2018-06-29 10:12


origen


Respuestas:


Actualización: esta respuesta ha recibido mucha más atención de la que merece. Originalmente se publicó porque creo que los gráficos se ven bien y se pueden dibujar en Illustrator para una publicación, y no había una solución mejor. Pero ahora existen muchas más respuestas aplicables a esta Q, como fraczes, Jubobs', o Harry Lee¡Es! Por favor, ve a votar esos !!

Actualización 2: publiqué una versión mejorada de esta respuesta al Visualizar la topología de la rama en git pregunta, ya que es mucho más apropiado allí. Esa versión incluye  lg3, que muestra tanto la información del autor como la del committer, por lo que realmente deberías echarle un vistazo. Dejando esta respuesta por razones históricas (y rep, admitiré), aunque estoy realmente tentado de simplemente eliminarla.

2 ¢: Tengo dos alias que normalmente lanzo en mi ~/.gitconfig archivo:

[alias]
lg1 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
lg = !"git lg1"

git lg/git lg1 Se ve como esto:
git lg1

y git lg2 Se ve como esto:
git lg2


1520
2018-01-31 04:22



Muchas de las respuestas aquí son geniales, pero para aquellos que solo quieren una línea simple hasta la respuesta sin tener que configurar alias o algo extra, aquí está:

git log --all --decorate --oneline --graph

No todo el mundo estaría haciendo un registro de git todo el tiempo, pero cuando lo necesites solo recuerda: " Un perro "= git log -unll -reecorate -oneline -gramoraph

enter image description here


550
2018-01-29 00:50



Para salida de texto puede intentar:

git log --graph --abbrev-commit --decorate --date=relative --all

o:

git log --graph --oneline --decorate --all

o: aquí está  un alias graphviz para dibujar el gráfico DAG.

Yo personalmente uso gitx, gitk --all y gitnub.


290
2018-06-29 22:25



Gitgraph.js permite dibujar ramas bonitas sin un repositorio. Simplemente escriba un código Javascript que configure sus ramas y confirmaciones y lo renderice en el navegador.

var gitGraph = new GitGraph({
   template: "blackarrow",
   mode: "compact",
   orientation: "horizontal",
   reverseArrow: true
});

var master = gitGraph.branch("master").commit().commit();
var develop = gitGraph.branch("develop").commit();
master.commit();
develop.commit().commit();
develop.merge(master);

sample graph generated with Gitgraph.js

o con metro modelo:

GitGraph.js metro theme

o con mensajes de commit, autores y etiquetas:

GitGraph with commit messages

Pruébalo con JSFiddle.

Generarlo con Git Grapher por @bsara.


183
2018-06-08 14:40



Construido encima de TikZ y PGF, gitdags es un pequeño paquete LaTeX que le permite producir gráficos de compromiso de gráficos vectoriales sin esfuerzo, y más.

La generación automática del gráfico de confirmación de un repositorio existente es no el propósito de gitdags; los gráficos que produce son solo para propósitos educativos.

A menudo lo uso para producir gráficos para mis respuestas a las preguntas de Git, como una alternativa a los gráficos de confirmación ASCII:

Aquí hay un ejemplo de un gráfico que demuestra los efectos de una simple rebase:

enter image description here

\documentclass{article}

\usepackage{subcaption}
\usepackage{gitdags}

\begin{document}

\begin{figure}
  \begin{subfigure}[b]{\textwidth}
    \centering
    \begin{tikzpicture}
      % Commit DAG
      \gitDAG[grow right sep = 2em]{
        A -- B -- { 
          C,
          D -- E,
        }
      };
      % Tag reference
      \gittag
        [v0p1]       % node name
        {v0.1}       % node text
        {above=of A} % node placement
        {A}          % target
      % Remote branch
      \gitremotebranch
        [origmaster]    % node name
        {origin/master} % node text
        {above=of C}    % node placement
        {C}             % target
      % Branch
      \gitbranch
        {master}     % node name and text 
        {above=of E} % node placement
        {E}          % target
      % HEAD reference
      \gitHEAD
        {above=of master} % node placement
        {master}          % target
    \end{tikzpicture}
    \subcaption{Before\ldots}
  \end{subfigure}

  \begin{subfigure}[b]{\textwidth}
    \centering
    \begin{tikzpicture}
      \gitDAG[grow right sep = 2em]{
        A -- B -- { 
          C -- D' -- E',
          {[nodes=unreachable] D -- E },
        }
      };
      % Tag reference
      \gittag
        [v0p1]       % node name
        {v0.1}       % node text
        {above=of A} % node placement
        {A}          % target
      % Remote branch
      \gitremotebranch
        [origmaster]    % node name
        {origin/master} % node text
        {above=of C}    % node placement
        {C}             % target
      % Branch
      \gitbranch
        {master}      % node name and text 
        {above=of E'} % node placement
        {E'}          % target
      % HEAD reference
      \gitHEAD
        {above=of master} % node placement
        {master}          % target
    \end{tikzpicture}
    \subcaption{\ldots{} and after \texttt{git rebase origin/master}}
  \end{subfigure}
  \caption{Demonstrating a typical \texttt{rebase}}
\end{figure}

\end{document}

96
2017-08-24 04:14



Gitg es un clon de Gitk y GitX para GNOME (también funciona en KDE, etc.) que muestra un gráfico bastante colorido.

Está activamente desarrollado (a partir de 2012). Te permite ordenar los commits (nodos de gráfico) cronológicamente o topológicamentey ocultar confirmaciones que no conducen a una rama seleccionada.

Funciona bien con grandes repositorios y gráficos complejos de dependencia.

Capturas de pantalla de muestra, que muestran los repositorios de linux-git y linux-2.6:

linux-git

linux-2.6


72
2017-11-01 23:35



SourceTree es realmente bueno. Imprime un historial y un gráfico de ramas de buen tamaño y mediano tamaño (lo siguiente se hace en un proyecto experimental de Git solo para ver algunas ramas). Admite Windows 7+ y Mac OS X 10.6+.

enter image description here

http://www.sourcetreeapp.com/


57
2017-09-17 00:52



Acabo de escribir una herramienta que puede generar git commit commit gráfico con HTML / Canvas.

Y proporcione un plugin jQuery que lo haga fácil de usar.

[github] https://github.com/tclh123/commits-graph

Avance:

preview


53
2018-01-14 15:07