Jolie branche git graphiques
J'ai vu quelques livres et articles ont certains vraiment très jolie, à la recherche des graphiques de branches git et s'engage. Comment puis-je faire imprimable de haute qualité, des images de l'historique de git?
- J'ai créé un script python pour créer un graphiz graphique! Prendre un coup d'oeil. github.com/chode/git-graph
- Si vous voulez de haute qualité et imprimable, mon outil (bit-booster.com/graph.html) permet de convertir le "git log" en SVG. Pour plus d'informations, voir ma réponse.
- Vous êtes à la recherche d'un outil pour visualiser votre propre historique de git - ou - un outil de cartographie qui a une manière de dessiner de jolies "branches Git"?
- Double Possible de la Visualisation de la branche de la topologie dans git
- Je voudrais supprimer la balise dirigé-acyclique-graphiques parce que ce n'est pas pertinent à cette question
Vous devez vous connecter pour publier un commentaire.
Mise à jour: Cette réponse a eu beaucoup plus d'attention qu'elle mérite. Il a été posté parce que je pense que les graphiques ont l'air sympa et ils pourraient être élaborés dans Illustrator pour une publication et il n'y avait pas de meilleure solution. Mais il existe maintenant beaucoup plus de réponses à ce Q, comme fracz's, Jubobs', ou Harry Lee's! s'il vous Plaît aller upvote ceux!!
Mise à jour 2: j'ai posté une version améliorée de cette réponse à la La visualisation de la branche de la topologie dans git question, car il est plus approprié loin de là. Cette version inclut
lg3
, qui montre à la fois l'auteur et à valider l'info, donc vous devriez vraiment vérifier. abandon de cette réponse pour historique (& rep, je l'admets) raisons, mais je suis vraiment tenté de simplement de le supprimer.2¢: j'ai deux alias j'ai l'habitude de jeter dans mon
~/.gitconfig
fichier:git lg
/git lg1
ressemble à ceci:et
git lg2
ressemble à ceci:#202020
/#555555
, Rouge:#5d1a14
/#da4939
, Vert:#424e24
/#a5c261
, Jaune:#6f5028
/#ffc66d
, Bleu:#263e4e
/#6d9cbe
, Magenta:#3e1f50
/#a256c7
, Cyan:#234e3f
/#62c1a1
, et Blanc:#979797
/#ffffff
.ref
noms.--date=relative
et--abbrev-commit
sont redondants parce que vous utilisez explicitement%cr
et%h
, respectivement.!"echo 'ran lg1'"
et lg2 comme!"echo 'ran lg2'"
.Preferences›Settings»Text›ANSI Colors
.git-config
. Et pour les 5% qui ne sont pas— ils vraiment devrait être plus axé sur l'apprentissage git et avoir une interface graphique pour des visualisations, comme cela plutôt que de la personnalisation de leur CLI. Honnêtement, je suggère à quiconque n'est pas déjà familier avec leur.gitconfig
fichier ne pas mettre des extraits trouvés sur les interwebs là.text
etbold text
couleurs?%C(auto)
modificateur à la refnames (%d
) pour obtenir de plus agréable des couleurs. Voir stackoverflow.com/questions/5889878/color-in-git-log/...lg = log --graph --abbrev-commit --decorate --format=format:'%C(yellow)%h%C(reset)%C(auto)%d%C(reset) %C(normal)%s%C(reset) %C(dim white)%an%C(reset) %C(dim blue)(%ar)%C (reset)' --all
~/.gitconfig
fichier ici: gist.github.com/capnslipp/859701%C(auto)%d%C(reset)
partie.git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)%aD%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
--color
à la gitlog commandeBeaucoup de réponses ici sont grands, mais pour ceux qui veulent juste un simple d'une ligne vers le point de répondre sans avoir à la configuration des alias ou rien en plus, c'est ici:
Pas tout le monde le ferait un
git log
tout le temps, mais quand vous en avez besoin, n'oubliez pas:git config --global alias.adog "log --all --decorate --oneline --graph"
--all
pour aussi longtemps que je suis sur le point de pleurer (T_T) je VOUS REMERCIE!Pour le texte de sortie, vous pouvez essayer:
ou:
ou: voici
un graphviz alias pour le dessin de la DAG graphique.
Personnellement, j'utilise
gitx
,gitk --all
etgitnub
.--abbrev-commit --decorate
, et alors c'est parfait!--abbrev-commit
si vous utilisez--oneline
git log --graph --oneline --decorate --date=relative --all
la--date
argument est inutile. Je ne vois pas de date indiquée dans le journal.oneline
) version la plupart du temps, mais si j'ai besoin de plus de détails, utilisez la version longue avec plein de commettre des détails. Alors j'ai deux belles mappages de<leader>gl
(court) et<leader>gll
(long) dans Vim.Gitgraph.js permet de dessiner de jolies branches git sans un référentiel. Il suffit d'écrire un code Javascript qui permet de configurer vos branches et s'engage et le rendu dans le navigateur.
ou avec
metro
modèle:ou avec des messages de validation, les auteurs, et tags:
Tester avec JSFiddle.
Générer avec Git Grapher par @bsara.
gitgraph.min.js
lien ne fonctionne plus dans le jsfiddle. Il y a d'autres lieux d'hébergement de l'script, à vos risques et périls: stackoverflow.com/q/48106879/521799Construit sur le haut de TikZ & PGF,
gitdags
est un peu le paquet LaTeX qui vous permet sans effort à produire des vecteurs graphiques commettre des graphiques, et plus encore.Génération automatique d'un référentiel existant commit graphique est pas le but de
gitdags
; les graphiques qu'il produit ne sont là que pour des fins éducatives.J'ai souvent de l'utiliser pour produire des graphiques pour mes réponses à Git questions, comme une alternative à l'ASCII commettre des graphiques:
Voici un exemple d'un tel graphique montrant les effets d'une simple rebase:
:)
latex input.tex
pour générer un dvi, et puis, finalement,dvisvgm input.dvi
pour générer un SVG avec de la transparence. La conversion depuis le format SVG pour un format raster comme le PNG est assez facile avecconvert -antialias -density 300 -background none input.svg output.png
. Par ailleurs, ces images amazing en toute transparence. Je travaille encore sur la police problème... i.imgur.com/1Xu2Ry5.pngstandalone
classe, mais, si j'étais vous, j'irais lepdflatex
route, parce qu'il produit un fichier PDF directement. Aussi, pas besoin de pixelliser; il suffit de l'importer n'importe où comme un PDF. La police de caractères que vous utilisez?pdflatex
. Je ne vois pas de tels artefacts sur la mon fichier PDF de sortie (dans Mac OS X Preview).convert -channel rgba -density 600 -alpha on input.pdf output.png
, les résultats dans les artefacts. L'adaptateur DVI->SVG>PNG route ne veut pas les produire. De même, ils ne sont pas présents dans le Tex->processus de création de PDF.gitdags
etxcolor-solarized
à CTAN, elles feront partie de votre distribution TeX et vous n'aurez pas besoin de les installer "manuellement".gitdags
est sur le chemin!Gitg est un clone de Gitk et GitX pour GNOME (il travaille également sur KDE, etc.) ce qui montre une jolie couleur graphique.
Il est activement développé (comme en 2012). Il permet de trier les commits (noeuds d'un graphe) soit chronologique ou topologiquement, et de masquer les commits qui ne conduisent pas à une branche sélectionnée.
Il fonctionne très bien avec les grands référentiels et complexe des graphes de dépendance.
Exemple des captures d'écran, montrant le linux, git et linux-2.6 dépôts:
SourceTree est vraiment bonne. Il n'a l'impression d'une bonne recherche et de taille moyenne de l'histoire et de la branche graphique: (ce qui suit est fait sur une expérimentation de projet Git juste pour voir certaines branches). Prend en charge Windows 7+ et Mac OS X 10.6+.
http://www.sourcetreeapp.com/
Je viens d'écrire un outil qui peut générer assez git s'engage graphique à l'aide de HTML/Toile.
Et de fournir un plugin jQuery qui le rendent facile à utiliser.
[github] https://github.com/tclh123/commits-graph
Aperçu:
git-forêt
est un excellent script perl que j'ai utilisé pendant plus d'un an et j'ai à peine utiliser legit log
commande plus directement.Ce sont certaines des choses que j'aime à propos de ce script:
--reverse
avec la sortie d'un graphe, ce qui n'est pas possible avec lesgit log
commande.git log
en interne pour récupérer la liste des commits, de sorte que toutes les options que vous passez àgit log
peuvent également être transmises à ce script.J'ai un alias en utilisant
git-forest
comme suit:C'est l'aspect de la sortie comme sur un terminal:
Basé sur un Graphviz script que j'ai trouvé dans une réponse à une question relative à la, j'ai piraté un script ruby qui crée un résumé vue d'un dépôt git. Il élude toutes linéaire de l'histoire et montre juste "intéressant" s'engage, c'est à dire ceux avec plusieurs parents de plusieurs enfants, ou souligné par une branche ou une étiquette. Voici un extrait du graphe, il génère pour jquery:
git-grand-image et BranchMaster sont des outils similaires qui tentent de montrer que le haut niveau de la structure d'un graphe, par l'affichage de l'utilisation de balises, de branches, de fusions, etc. sont liées.
Cette question a quelques options.
J'ai écrit un outil web pour la conversion de logs git dans assez SVG graphiques:
Peu-Booster - Offline Commettre Graphique De L'Outil De Dessin
Télécharger la sortie de
git log --pretty='%h|%p|%d'
directement dans l'outil, puis cliquez sur "télécharger graphique.svg" lien.L'outil est pure côté client, et afin qu'aucun de vos Git de données est partagée avec mon serveur. Vous pouvez également enregistrer le code HTML + JS localement et de les exécuter à l'aide "file:///" de l'URL. Vérifié sur google Chrome 48 et Firefox 43 sur Ubuntu 12.04.
Il génère du code HTML qui peuvent être affichés directement dans la page (y compris les blogs blogspot moteur!). Jetez un oeil à certains des messages de blog ici:
http://bit-booster.blogspot.ca/
Voici une capture d'écran d'un exemple de fichier HTML généré par l'outil:
http://bit-booster.com/graph.html (l'outil)
Dépend à quoi ils ressemblaient. J'utilise gitx qui fait des photos comme celle-ci:
Vous pouvez comparer
git log --graph
vs gitk sur 24 chemin de poulpe de fusion (à l'origine de http://clojure-log.n01se.net/date/2008-12-24.html):J'ai ajouté trois commandes personnalisées:
git tree
,git stree
etgit vtree
. Je vais aller sur eux dans l'ordre.Avec
git stree
etgit vtree
j'ai utiliser bash pour aider à la mise en forme.EDIT: Cela fonctionne avec git version 1.9. La couleur de la valeur 'auto' est apparemment fait ses débuts dans cette version. C'est un petit plus parce que les noms de branche obtiendrez une couleur différente. Cela rend plus facile de distinguer entre les locaux et les bureaux distants, par exemple.
fatal: bad color value 'auto' for variable '--pretty format'
🙁sed: illegal option -- r
Pour de plus amples sortie textuelle, s'il vous plaît essayer:
Vous pouvez écrire des alias dans $HOME/.gitconfig
gitg: gtk-référentiel basé sur la visionneuse, c'est nouveau, mais intéressant et utile
http://git.gnome.org/browse/gitg
Je l'utilise actuellement
GitX
et un très bon à cela. RecommanderC'est mon point de vue sur cette question:
Capture d'écran:
Utilisation:
git hist
- Show de l'histoire de la branche courantegit hist --all
- Afficher le graphique de toutes les branches (y compris les télécommandes)git hist master devel
- Montrer la relation entre deux ou plusieurs branchesgit hist --branches
- Afficher toutes les branches localesAjouter
--topo-order
pour trier s'engage topologiquement, plutôt que par date (par défaut dans cet alias)Avantages:
--decorate
, donc avec des couleurs distinctes pour les différents noms de brancheDe l'installation:
Bien que parfois, j'utilise gitg, toujours revenir à la ligne de commande:
Comme vous pouvez le voir, c'est presque une touche d'économie d'alias, basée sur:
Voir dans les dernières version de git (1.8.5 et ci-dessus), vous pouvez bénéficier d' %C(auto) en décorer l'espace réservé %d
À partir d'ici, vous n'avez besoin que d'une bonne compréhension de gitrevisions de filtrer ce que vous avez besoin (quelque chose comme maître..développer, où-simplifier-fusionne pourrait aider à long terme, les branches)
Le pouvoir derrière la ligne de commande est la rapidement config en fonction de vos besoins (comprendre un repo n'est pas une clé unique de configuration du journal, donc, l'ajout de --numstat, ou --raw, ou --nom de l'état est parfois nécessaire. Ici git log et les alias sont rapides, puissants et (avec le temps) le plus joli graphique, vous pouvez atteindre. Même plus, avec la sortie affiché par défaut par le biais d'un pager (disons moins), vous pouvez toujours chercher rapidement à l'intérieur de résultats. Pas convaincu? Vous pouvez toujours analyser le résultat avec des projets comme gitgraph
Très peu de peaufinage Slipp est génial réponse, vous pouvez utiliser ses noms d'emprunt pour se connecter juste une branche:
En laissant le
--all
vous pouvez maintenant faireou même
J'ai cette
git log
alias dans~/.gitconfig
pour afficher le graphique de l'histoire:Dans ce lieu,
git l
va afficher quelque chose comme:Dans Git 2.12+ vous pouvez même personnaliser les couleurs des courbes du graphique à l'aide de la
journal.graphColors
option de configuration.Comme pour les journaux de format, il est similaire à
--oneline
, avec l'ajout de la le nom de l'auteur (dans le respect de.mailmap
) et le relative auteur date. Notez que le%C(auto)
de la syntaxe, ce qui indique à Git d'utiliser les couleurs par défaut pour la validation de hachage, etc. est pris en charge dans Git >= 1.8.3.git log --graph --oneline
juste pour s'assurer que oneliner ne se perde pasGitGraph
Génère un PNG ou SVG représentation de votre dépôt Git commit l'histoire.
https://code.google.com/p/gitgraph
C'est mon terminal variante, semblable à beaucoup de réponses ici. Je tiens à ajuster les indicateurs transmis à
less
pour empêcher le retour à la ligne.Que j'ai mis ce à un alias pour un accès rapide depuis la commande est un peu lourd.
Avez-vous essayé
gitk
ougitk --all
? Toutefois, il ne faut pas avoir une impression de sauvegarder/img que la fonction.--all
vous montre toutes les branches.Je suggère
tig
https://github.com/jonas/tigun beaucoup beaucoup mieux outil de ligne de commande pour git.
Vous pouvez utiliser homebrew installer tig sur macOS:
Essayer ditaa. Il peut transformer tout type de diagramme dans une image. Bien que le programme n'a pas été conçu avec des branches Git dans l'esprit, j'ai été impressionné par les résultats.
Source (fichier txt):
Commande:
Résultat:
Il prend également en charge les couleurs de fond, des pointillés, des formes différentes et plus. Voir les exemples.
Il y a un funky Git commit graphique comme l'un des démos de la Raphaël graphiques web de la bibliothèque.
La démo n'est pas statique, mais il devrait être assez facile de prendre le code et d'échanger leurs données statiques pour un set live de données -- je pense que c'est juste Git commit des données au format JSON.
La démo est ici: http://dmitrybaranovskiy.github.io/raphael/github/impact.html
Je ne connais pas un moyen direct, mais peut-être que vous pouvez pirater un script pour exporter les données au format dot et de la rendre avec graphviz.
io
commandes perl simple git log [ ... ] " les commandes ont travaillé pour moi.brew install perl dot
et puiscpan common::sense IO::all
pour obtenir les dépendances. Ensuite, il suffit de rediriger la sortie d'une commande appropriée, commegit-graphviz | dot -Tpng -o repo.png
. Cependant, la sortie n'est pas très différente de la git-grand-image.Pour les utilisateurs de OSX, j'ai pris l' @gospes exemple et légèrement modifié pour gsed (
gnu-sed
installé via homebrew) et ajusté les couleurs (pour travailler avec un fond noir, vous ne savez pas comment le modèle original pourrait éventuellement rendre de la façon dont il le fait dans l'exemple, car il spécifie que le texte noir sur un terminal avec un fond noir).La clé pour OSX est d'abord installer gnu sed (qui a l'option-r). Plus facile à faire avec homebrew, qui n'écrase pas le système installé sed, mais au lieu d'installer gnu sed comme "gsed". Espérons que cela aide @SlippD.Thompson, qui commenté ci-dessus sur OSX ne fonctionne pas.
certains pseudonymes dans ~/.oh-my-zsh/plugins/git/git.plugin.zsh
Si votre dépôt est assis sur Gitlab, vous pouvez utiliser sa représentation graphique, comme c'est rendu que le SVG dans votre navigateur.
Aller à votre référentiel de vue graphique, par exemple https://gitlab.com/gitlab-org/gitter/webapp/network/develop
Faire défiler le graphique vers le bas (il paresseux charges s'engage!)
Utilisation de votre navigateur inspecteur pour copier l'élément SVG dans un nouveau fichier
L'ouvrir dans un moteur de rendu de votre choix, par exemple Inkscape
En plus de la réponse de "Slipp D. Thompson", je vous propose d'ajouter cet alias pour avoir la même décoration, mais dans une seule ligne par commettre :
En regardant cette conversation essayé d'utiliser mon préféré
git-cola
&git-dag
. L'exécution deView->DAG...
degit-cola
et remplacer Journal:master --
avec--all
montre assez graphique avec toutes les branches.