සමහර පොත් සහ ලිපි වල ඇත්ත වශයෙන්ම ලස්සන පෙනුමක් ඇති git ශාඛා හා කොමිස් ඇති බව මම දැක ඇත්තෙමි. Git ඉතිහාසයේ උසස් තත්ත්වයේ මුද්රණය කළ හැකි රූප සාදා ගන්නේ කෙසේද?
සමහර පොත් සහ ලිපි වල ඇත්ත වශයෙන්ම ලස්සන පෙනුමක් ඇති git ශාඛා හා කොමිස් ඇති බව මම දැක ඇත්තෙමි. Git ඉතිහාසයේ උසස් තත්ත්වයේ මුද්රණය කළ හැකි රූප සාදා ගන්නේ කෙසේද?
Answers:
යාවත්කාලීන කිරීම: මෙම පිළිතුර ලැබිය යුතු ප්රමාණයට වඩා වැඩි අවධානයක් ලබා ගෙන ඇත. එය මුලින් පළ කරන ලද්දේ මා සිතන පරිදි ප්රස්ථාර ලස්සන පෙනුමක් ඇති අතර ඒවා ප්රකාශනයක් සඳහා ඉලස්ට්රේටරයේ ඇඳිය හැකිය. ඊට වඩා හොඳ විසඳුමක් නොතිබුණි. නමුත් මෙම Q සඳහා ෆ්රැක්ස් , ජුබොබ්ස් හෝ හැරී ලී වැනි තවත් බොහෝ පිළිතුරු දැන් තිබේ ! කරුණාකර ඒවා ඉහළට ඔසවන්න !!
යාවත්කාලීනය 2: මම මෙම පිළිතුරෙහි වැඩි දියුණු කළ සංස්කරණයක් දෘශ්යකරණ ශාඛා ස්ථාන විද්යාවට git ප්රශ්නයට ඇතුළත් කර ඇත්තෙමි . එම අනුවාදයට ඇතුළත් වේ lg3
වන අතර, එය කර්තෘ සහ බැඳීම් තොරතුරු යන දෙකම පෙන්වයි, එබැවින් ඔබ එය සැබවින්ම පරීක්ෂා කර බැලිය යුතුය. Answer තිහාසික (සහ නියෝජිත, මම පිළිගනිමි) හේතු සඳහා මෙම පිළිතුර අත්හැර දැමුවද, එය මකා දැමීමට මා සැබවින්ම පෙළඹී ඇත.
මගේ 2 ¢ : මම සාමාන්යයෙන් මගේ ~/.gitconfig
ගොනුවේ විසි කරන අන්වර්ථ නාම දෙකක් ඇත :
[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
මේ වගේ:
සහ git lg2
මේ වගේ:
#202020
/ #555555
, රතු: #5d1a14
/ #da4939
, කොළ: #424e24
/ #a5c261
, කහ: #6f5028
/ #ffc66d
, නිල්: #263e4e
/ #6d9cbe
, මැජෙන්ටා: #3e1f50
/ #a256c7
, සයන්: #234e3f
/ #62c1a1
, සහ සුදු: #979797
/ #ffffff
.
--date=relative
සහ --abbrev-commit
ඔබ සුවිශේෂව භාවිතා නිසා භාවෙය් %cr
සහ %h
දැමිනි.
%C(auto)
සඳහා මම නවීකරණයට ( %d
) නැවත නම් වලට එකතු කරමි . 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
මෙහි ඇති බොහෝ පිළිතුරු විශිෂ්ටයි, නමුත් අන්වර්ථයන් හෝ අමතර කිසිවක් සැකසීමකින් තොරව සරල පිළිතුරක් ලක්ෂ්යයට අවශ්ය අයට, මෙන්න එයයි:
git log --all --decorate --oneline --graph
සෑම කෙනෙකුම සෑම විටම කරන්නේ නැත git log
, නමුත් ඔබට එය අවශ්ය වූ විට මතක තබා ගන්න:
" බල්ලෙක් " = git log - a ll - d ecorate - o neline - g raph
git config --global alias.adog "log --all --decorate --oneline --graph"
--all
මෙතරම් කාලයක් තිස්සේ සොයමින් සිටියෙමි (T_T) ඔබට ස්තූතියි!
පා output මය ප්රතිදානය සඳහා ඔබට උත්සාහ කළ හැකිය:
git log --graph --abbrev-commit --decorate --date=relative --all
හෝ:
git log --graph --oneline --decorate --all
හෝ: මෙතන ඇති ඩැග් ප්රස්තාරය ඇඳීම සඳහා graphviz හෙවත්.
oneline
) අනුවාදය අමතන්න පුළුවන් , නමුත් මට වැඩි විස්තර අවශ්ය නම් දිගු අනුවාදය භාවිතා කරන්න සම්පූර්ණ බැඳීම් විස්තර. එවිට මට <leader>gl
(කෙටි) සහ <leader>gll
(දිගු) Vim හි ලස්සන සිතියම් දෙකක් තිබේ .
Gitgraph.js නිධියකින් තොරව ලස්සන git අතු ඇඳීමට ඉඩ දෙයි. ඔබේ ශාඛා වින්යාස කර ජාවාස්ක්රිප්ට් කේතයක් ලියා එය බ්රවුසරයේ විදහා දක්වන්න.
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);
හෝ metro
අච්චුව සමඟ :
හෝ කැපවූ පණිවිඩ, කතුවරුන් සහ ටැග් සමඟ:
JSFiddle සමඟ එය පරීක්ෂා කරන්න .
@Bsara විසින් Git Grapher සමඟ එය ජනනය කරන්න .
උඩ ඉදි TikZ සහ PGF , gitdags
ඔබ තුවක්කුවෙන් දෛශීය රූප ප්රස්තාර සිදු නිෂ්පාදනය, සහ තවත් කිරීමට ඉඩ සලසා දෙන කුඩා LaTeX පැකේජය වේ.
දැනට පවතින ගබඩාව ගේ ස්වයංක්රීය පරම්පරාව ප්රස්තාරය වේ සිදු නොවන අරමුණ gitdags
; එය නිපදවන ප්රස්ථාර අධ්යාපන අරමුණු සඳහා පමණි .
ASCII කැපකිරීමේ ප්රස්ථාරවලට විකල්පයක් ලෙස Git ප්රශ්න සඳහා මගේ පිළිතුරු සඳහා ප්රස්ථාර නිෂ්පාදනය කිරීමට මම බොහෝ විට එය භාවිතා කරමි:
සරල ප්රත්යාවර්තකයක බලපෑම පෙන්නුම් කරන එවැනි ප්රස්ථාරයක උදාහරණයක් මෙන්න:
\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}
:)
latex input.tex
පංතියේ තනිවම (මම බෝග ලක්ෂණය භාවිතා කරමි), ඩීවී ජනනය කිරීම සඳහා භාවිතා කර ඔබේ ප්රස්ථාර පසු සැකසුම් කළ හැකි බවයි. dvisvgm input.dvi
විනිවිදභාවයෙන් යුත් SVG ජනනය කිරීමට. SVG සිට PNG වැනි රාස්ටර් ආකෘතියකට පරිවර්තනය කිරීම පහසුය convert -antialias -density 300 -background none input.svg output.png
. මාර්ගය වන විට, මෙම රූප පූර්ණ විනිවිදභාවයකින් යුතුව පුදුම සහගත ලෙස පෙනේ . අකුරු නිකුතුව සම්බන්ධයෙන් තවමත් ක්රියා කරයි ... i.imgur.com/1Xu2Ry5.png
Gitg යනු GNOME සඳහා Gitk සහ GitX වල ක්ලෝනයකි (එය KDE ආදිය මතද ක්රියා කරයි) එය ලස්සන වර්ණ ප්රස්ථාරයක් පෙන්වයි.
එය සක්රියව සංවර්ධනය කර ඇත (2012 වන විට). එය ඔබට කාලානුක්රමිකව හෝ භූ විද්යාත්මකව කොමිස් (ප්රස්තාර නෝඩ්) වර්ග කිරීමට සහ තෝරාගත් ශාඛාවකට යොමු නොවන කොමිස් සඟවන්න.
එය විශාල ගබඩාවන් සහ සංකීර්ණ පරායත්ත ප්රස්ථාර සමඟ හොඳින් ක්රියා කරයි.
ලිනක්ස්-ගිට් සහ ලිනක්ස් -2.6 නිධි පෙන්වන නියැදි තිරපිටපත්:
HTML / කැන්වස් භාවිතයෙන් ලස්සන git commits ප්රස්ථාරයක් ජනනය කළ හැකි එක් මෙවලමක් මා ලිවීය.
භාවිතයට පහසු වන පරිදි jQuery ප්ලගිනයක් ලබා දෙන්න.
[github] https://github.com/tclh123/commits-graph
පෙරදසුන:
Sourcetree ඇත්තෙන්ම හොඳ එකක්. එය හොඳ පෙනුමක් සහ මධ්යම ප්රමාණයේ ඉතිහාසයක් සහ ශාඛා ප්රස්ථාරයක් මුද්රණය කරයි: (පහත දැක්වෙන්නේ සමහර ශාඛා බැලීමට පර්යේෂණාත්මක Git ව්යාපෘතියක ය). වින්ඩෝස් 7+ සහ මැක් ඕඑස් එක්ස් 10.6+ සඳහා සහය දක්වයි.
git-forest
මම වසරකට වැඩි කාලයක් තිස්සේ භාවිතා කර ඇති විශිෂ්ට පර්ල් පිටපතක් වන අතර මම git log
තවදුරටත් සෘජුවම විධානය භාවිතා නොකරමි .
මෙම පිටපතට මා ආදරය කරන දේවල් මේවා ය:
--reverse
සාමාන්ය git log
විධානය සමඟ කළ නොහැකි ප්රස්ථාර ප්රතිදානය සමඟ ඔබට ඒකාබද්ධ කළ හැකිය .git log
කොමිස් ලැයිස්තුව උදුරා ගැනීමට එය අභ්යන්තරව භාවිතා කරයි, එබැවින් ඔබ සම්මත කරන සියලුම විකල්පයන් git log
මෙම ස්ක්රිප්ටයටද ලබා දිය හැකිය.මට git-forest
පහත දැක්වෙන පරිදි අන්වර්ථයක් ඇත:
[alias]
tree = "forest --pretty=format:\"%C(red)%h %C(magenta)(%ar) %C(blue)%an %C(reset)%s\" --style=15 --reverse"
පර්යන්තයක ප්රතිදානය පෙනෙන්නේ මෙයයි:
Git ලොග් ලස්සන SVG ප්රස්තාර බවට පරිවර්තනය කිරීම සඳහා මම වෙබ් මෙවලමක් ලිව්වෙමි: Bit-Booster - Offline commit Graph Drawing Tool
සිට ප්රතිදානය උඩුගත කරන්න git log --pretty='%h|%p|%d'
කෙලින්ම මෙවලමට කර "download graph.svg" සබැඳිය ක්ලික් කරන්න.
මෙවලම පිරිසිදු-සේවාදායක පාර්ශවයක් බැවින් ඔබගේ Git දත්ත කිසිවක් මගේ සේවාදායකය සමඟ බෙදා නොගනී. ඔබට HTML + JS දේශීයව සුරැකිය හැකි අතර එය "file: ///" URL භාවිතා කර ක්රියාත්මක කළ හැකිය. ක්රෝම් 48 සහ ෆයර්ෆොක්ස් 43 උබුන්ටු 12.04 හි සත්යාපනය කර ඇත.
එය ඕනෑම පිටුවකට කෙලින්ම පළ කළ හැකි HTML ජනනය කරයි (බ්ලොග්ස්පොට් බ්ලොග් එන්ජිම ඇතුළුව!). මෙහි ඇති සමහර බ්ලොග් සටහන් දෙස බලන්න:
http://bit-booster.blogspot.ca/
මෙවලම මඟින් ජනනය කරන ලද නියැදි HTML ගොනුවක තිර රුවක් මෙන්න:
ආශ්රිත ප්රශ්නයකට පිළිතුරක් ලෙස මා සොයාගත් ග්රැෆ්විස් ස්ක්රිප්ටයක් මත පදනම්ව , මම රූබි ස්ක්රිප්ට් එකක් හැක් කර ඇති අතර එය ගිට් ගබඩාවක සාරාංශ දර්ශනයක් නිර්මාණය කරයි. එය සියලු රේඛීය ඉතිහාසය මග හරින අතර "සිත්ගන්නාසුලු" ක්රියා පෙන්වයි, එනම් බහු දෙමව්පියන් සිටින දරුවන්, බහු දරුවන් හෝ ශාඛාවක් හෝ ටැගයක් මගින් පෙන්වා ඇති අය. Jquery සඳහා එය ජනනය කරන ප්රස්ථාරයේ කුඩා කොටසක් මෙන්න :
git-big-picture සහ BranchMaster යනු ප්රස්තාරයක ඉහළ මට්ටමේ ව්යුහය පමණක් පෙන්වීමට උත්සාහ කරන සමාන මෙවලම් වන අතර, ටැග්, ශාඛා, ඒකාබද්ධ කිරීම් ආදිය සම්බන්ධ වන්නේ කෙසේද යන්න පෙන්වීමෙන් පමණි.
මෙම ප්රශ්නයට තවත් විකල්ප කිහිපයක් තිබේ.
මම අභිරුචි විධාන තුනක් එකතු කරලා තියනවා: git tree
, git stree
සහ git vtree
. මම ඒ පිළිවෙලට ඒවා පසුකර යන්නම්.
[alias]
tree = log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset) %C(auto)%d%C(reset)\n %C(black)[%cr]%C(reset) %x09%C(black)%an: %s %C(reset)'
සමඟ git stree
සහ git vtree
මම ආකෘතිකරණයට උදව් කිරීමට bash භාවිතා කර ඇත.
[alias]
logx = log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset)+%C(dim black)(%cr)%C(reset)+%C(auto)%d%C(reset)++\n+++ %C(bold black)%an%C(reset)%C(black): %s%C(reset)'
stree = !bash -c '" \
while IFS=+ read -r hash time branch message; do \
timelength=$(echo \"$time\" | sed -r \"s:[^ ][[]([0-9]{1,2}(;[0-9]{1,2})?)?m::g\"); \
timelength=$(echo \"16+${#time}-${#timelength}\" | bc); \
printf \"%${timelength}s %s %s %s\n\" \"$time\" \"$hash\" \"$branch\" \"\"; \
done < <(git logx && echo);"'
[alias]
logx = log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset)+%C(dim black)(%cr)%C(reset)+%C(auto)%d%C(reset)++\n+++ %C(bold black)%an%C(reset)%C(black): %s%C(reset)'
vtree = !bash -c '" \
while IFS=+ read -r hash time branch message; do \
timelength=$(echo \"$time\" | sed -r \"s:[^ ][[]([0-9]{1,2}(;[0-9]{1,2})?)?m::g\"); \
timelength=$(echo \"16+${#time}-${#timelength}\" | bc); \
printf \"%${timelength}s %s %s %s\n\" \"$time\" \"$hash\" \"$branch\" \"$message\"; \
done < <(git logx && echo);"'
සංස්කරණය කරන්න: මෙය git අනුවාදය 1.9a සමඟ ක්රියා කරයි. 'ඔටෝ' යන වර්ණ අගය මෙම නිකුතුවේ දී ආරම්භ වේ. ශාඛා නම් වලට වෙනත් වර්ණයක් ලැබෙනු ඇති බැවින් එය කදිම එකතු කිරීමකි. මෙය දේශීය හා දුරස්ථ ශාඛා අතර වෙනස හඳුනා ගැනීම පහසු කරයි.
fatal: bad color value 'auto' for variable '--pretty format'
:(
sed: illegal option -- r
ඔවුන් මොන වගේද යන්න මත රඳා පවතී. මම මේ වගේ පින්තූර සාදන gitx භාවිතා කරමි :
ඔබට git log --graph
එදිරිව gitk 24-මාර්ග බූවල්ලා ඒකාබද්ධ කිරීමක් සමඟ සැසඳිය හැකිය (මුලින් http://clojure-log.n01se.net/date/2008-12-24.html වෙතින් ):
වඩාත් සවිස්තරාත්මක පා output ප්රතිදානය සඳහා කරුණාකර උත්සාහ කරන්න:
git log --graph --date-order -C -M --pretty=format:"<%h> %ad [%an] %Cgreen%d%Creset %s" --all --date=short
ඔබට අන්වර්ථය $ HOME / .gitconfig හි ලිවිය හැකිය
[alias]
graph = log --graph --date-order -C -M --pretty=format:\"<%h> %ad [%an] %Cgreen%d%Creset %s\" --all --date=short
git hist
- වත්මන් ශාඛාවේ ඉතිහාසය පෙන්වන්න
git hist --all
- සියලුම ශාඛා වල ප්රස්ථාරය පෙන්වන්න (දුරස්ථ ඇතුළුව)
git hist master devel
- ශාඛා දෙකක් හෝ වැඩි ගණනක් අතර සම්බන්ධතාවය පෙන්වන්න
git hist --branches
- සියලුම දේශීය ශාඛා පෙන්වන්න
--topo-order
දිනය අනුව වෙනුවට ස්ථානීය වශයෙන් කොමිස් වර්ග කිරීම සඳහා එක් කරන්න (මෙම අන්වර්ථයේ පෙරනිමිය)
--decorate
විවිධ ශාඛා නම් සඳහා වෙනම වර්ණ සමඟ පෙනෙන පරිදි සරල ලෙස පෙනේgit config --global alias.hist "log --graph --date-order --date=short \
--pretty=format:'%C(auto)%h%d %C(reset)%s %C(bold blue)%ce %C(reset)%C(green)%cr (%cd)'"
gitg : gtk මත පදනම් වූ නිධිය නරඹන්නෙක් , එය නව නමුත් රසවත් හා ප්රයෝජනවත්
http://git.gnome.org/browse/gitg
මම දැනට එය භාවිතා කරමි
GitX
සහ එය ඉතා හොඳ එකක් බව පෙනේ. නිර්දේශ කරන්න
සමහර විට මම gitg භාවිතා කළත් , සෑම විටම විධාන රේඛාවට පැමිණෙන්න:
[alias]
#quick look at all repo
loggsa = log --color --date-order --graph --oneline --decorate --simplify-by-decoration --all
#quick look at active branch (or refs pointed)
loggs = log --color --date-order --graph --oneline --decorate --simplify-by-decoration
#extend look at all repo
logga = log --color --date-order --graph --oneline --decorate --all
#extend look at active branch
logg = log --color --date-order --graph --oneline --decorate
#Look with date
logda = log --color --date-order --date=local --graph --format=\"%C(auto)%h%Creset %C(blue bold)%ad%Creset %C(auto)%d%Creset %s\" --all
logd = log --color --date-order --date=local --graph --format=\"%C(auto)%h%Creset %C(blue bold)%ad%Creset %C(auto)%d%Creset %s\"
#Look with relative date
logdra = log --color --date-order --graph --format=\"%C(auto)%h%Creset %C(blue bold)%ar%Creset %C(auto)%d%Creset %s\" --all
logdr = log --color --date-order --graph --format=\"%C(auto)%h%Creset %C(blue bold)%ar%Creset %C(auto)%d%Creset %s\"
loga = log --graph --color --decorate --all
# For repos without subject body commits (vim repo, git-svn clones)
logt = log --graph --color --format=\"%C(auto)%h %d %<|(100,trunc) %s\"
logta = log --graph --color --format=\"%C(auto)%h %d %<|(100,trunc) %s\" --all
logtsa = log --graph --color --format=\"%C(auto)%h %d %<|(100,trunc) %s\" --all --simplify-by-decoration
ඔබට පෙනෙන පරිදි යතුරු ආ roke ාත සුරැකීමේ අන්වර්ථයකි, එය මත පදනම්ව:
Git හි නවතම අනුවාදයෙන් බලන්න (1.8.5 සහ ඊට වැඩි) ඔබට% C (ස්වයංක්රීය) වලින් වාසි ලබා ගත හැකිය.
මෙතැන් සිට ඔබට අවශ්ය වන්නේ gitrevisions පිළිබඳ හොඳ අවබෝධයක් පමණි ඕනෑම දෙයක් පෙරීමට (මාස්ටර්..ඩෙලොප් වැනි දෙයක්, එහිදී - සරල කිරීම-ඒකාබද්ධ කිරීම දිගු කාලීන ශාඛා සඳහා උපකාරී වේ)
විධාන රේඛාව පිටුපස ඇති බලය ඔබේ අවශ්යතා මත පදනම්ව ඉක්මණින් වින්යාස කිරීමකි (repo යනු අද්විතීය යතුරු ලොග් වින්යාසයක් නොවන බව තේරුම් ගන්න, එබැවින් --numstat, හෝ --raw, හෝ --name-status එකතු කිරීම සමහර විට අවශ්ය වේ. මෙහි git log අන්වර්ථ නාමයන් වේගවත්, බලවත් වන අතර (කාලයත් සමඟ) ඔබට ළඟා කර ගත හැකි ලස්සනම ප්රස්ථාරය වේ. ඊටත් වඩා, පෙරනිමියෙන් පේජරයක් මඟින් පෙන්වන ප්රතිදානය සමඟ (අඩුවෙන් කියන්න) ඔබට සෑම විටම ඉක්මණින් ප්රති results ල ඇතුළත සෙවිය හැකිය. ඒත්තු ගැන්වී නැතිද? gitgraph වැනි ව්යාපෘති සමඟ
ස්ලිප්ගේ පුදුමාකාර පිළිතුර ඉතා සුළු වශයෙන් වෙනස් කරමින් , ඔබට ඔහුගේ අන්වර්ථ නාමයන් එක් ශාඛාවක් පමණක් ලොග් කිරීමට භාවිතා කළ හැකිය:
[alias]
lgBranch1 = log --graph --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative
lgBranch2 = log --graph --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(bold white)— %an%C(reset)' --abbrev-commit
lg = !"git lg1"
ඉවත්ව යාමෙන් --all
ඔබට දැන් කළ හැකිය
git lgBranch1 <branch name>
හෝ පවා
git lgBranch1 --all
මම යෝජනා කරන්නේ tig
https://github.com/jonas/tig
, git සඳහා වඩා හොඳ විධාන රේඛා මෙවලමක්.
මැකෝස් මත ටයිග් ස්ථාපනය කිරීම සඳහා ඔබට හෝම්බ rew භාවිතා කළ හැකිය:
$ brew install tig
$ tig
ප්රස්ථාර ඉතිහාසය බැලීමට මට මෙම git log
අන්වර්ථය ඇත ~/.gitconfig
:
[alias]
l = log --all --graph --pretty=format:'%C(auto)%h%C(auto)%d %s %C(dim white)(%aN, %ar)'
මෙය ක්රියාත්මක වීමත් සමඟ, මෙවැනි git l
දෙයක් ප්රතිදානය කරයි:
Git 2.12 + හි ඔබට log.graphColors
වින්යාස කිරීමේ විකල්පය භාවිතා කර ප්රස්ථාරයේ රේඛා වර්ණ අභිරුචිකරණය කළ හැකිය.
--oneline
ල logs ු-සටහන් ආකෘතිය සම්බන්ධයෙන් ගත් කල, එය කර්තෘගේ නම (ගරු කිරීම .mailmap
) සහ සාපේක්ෂ කර්තෘ දිනය එකතු කිරීම හා සමාන වේ . බව සටහන %C(auto)
ආදිය සිදු හැෂ් සඳහා සුපුරුදු වර්ණ භාවිතා කිරීමට Git කියයි වන කාරක රීති, Git> = සහය දක්වයි 1.8.3 .
git log --graph --oneline
ඔනෙලයිනර් නැති වී නැති බවට වග බලා ගැනීම සඳහා
GitGraph
ඔබගේ Git ගබඩාවේ බැඳීම් ඉතිහාසයේ PNG හෝ SVG නිරූපණයක් ජනනය කරයි.
ෂෙල් වෙඩි සඳහා ලස්සන හා පිරිසිදු පෙනුමක් ඇති මේස වැනි git ප්රස්ථාර ප්රතිදානය
ප්රස්තාර ගසට අමතරව සාමාන්යයෙන් හැෂ් සමඟ
හෝ අතිරේක තීරුවක
සංස්කරණය කරන්න : පැහැදිලි කිරීම් කියවීමකින් තොරව වහාම ආරම්භ කිරීමට ඔබට අවශ්යද? පහත EDIT 5 වන කොටසේ සිට git අන්වර්ථය, ස්ක්රිප්ට් හෝ ක්රියාකාරී කේත ස්නිපෙට් භාවිතා කරන්න හෝ EDIT 6 සමඟ වඩාත් සුවපහසු ක්රමයක් භාවිතා කරන්න .
මෙම ප්රශ්නයට ඇති සියලුම පිළිතුරු වලින් මේ දක්වා ෂෙල් වෙඩි සඳහා පිරිසිදු වගු පෙනුමක් ලබා දී නැත. ආසන්නතම දෙය නම් මා ආරම්භ කළ ශුභාරංචි වලින් මෙම පිළිතුරයි .
මගේ ප්රවේශයේ මූලික කරුණ නම් පරිශීලකයාට පෙන්වන ගස් අක්ෂර පමණක් ගණන් කිරීමයි. ඉන්පසු ඒවා සුදු පැහැති අවකාශයන්ගෙන් පුද්ගලික දිගකට පුරවන්න.
Git හැරුණු විට ඔබට මෙම මෙවලම් අවශ්ය වේ
බොහෝ විට ඕනෑම ලිනක්ස් බෙදාහැරීමක් සහිත ය.
කේත ස්නිපටය වේ
while IFS=+ read -r graph hash time branch message;do
# count needed amount of whitespaces and create them
whitespaces=$((9-$(sed -nl1000 'l' <<< "$graph" | grep -Eo '\\\\|\||\/|\ |\*|_' | wc -l)))
whitespaces=$(seq -s' ' $whitespaces|tr -d '[:digit:]')
# show hashes besides the tree ...
#graph_all="$graph_all$graph$(printf '%7s' "$hash")$whitespaces \n"
# ... or in an own column
graph_all="$graph_all$graph$whitespaces\n"
hash_all="$hash_all$(printf '%7s' "$hash") \n"
# format all other columns
time_all="$time_all$(printf '%12s' "$time") \n"
branch_all="$branch_all$(printf '%15s' "$branch")\n"
message_all="$message_all$message\n"
done < <(git log --all --graph --decorate=short --color --pretty=format:'+%C(bold 214)%<(7,trunc)%h%C(reset)+%C(dim white)%>(12,trunc)%cr%C(reset)+%C(214)%>(15,trunc)%d%C(reset)+%C(white)%s%C(reset)' && echo);
# paste the columns together and show the tablelike output
paste -d' ' <(echo -e "$time_all") <(echo -e "$branch_all") <(echo -e "$graph_all") <(echo -e "$hash_all") <(echo -e "$message_all")
අප භාවිතා කරන අවශ්ය අවකාශයන් ගණනය කිරීම
sed -nl1000 'l' <<< "$graph"
ගස් අක්ෂර පමණක් තෝරා ගැනීමට වඩා සියලු අක්ෂර ලබා ගැනීමට (පේළියකට 1000 දක්වා): * | / \ _ සහ හිස් අවකාශයන්
grep -Eo '\\\\|\||\/|\ |\*|_'
අවසාන වශයෙන් ඒවා ගණන් කර අපගේ තෝරාගත් දිග අගයෙන් ප්රති result ලය ආදේශ කරන්න, එය උදාහරණයේ 9 කි.
අප භාවිතා කරන හිස් අවකාශයන් ගණනය කිරීම
seq -s' ' $whitespaces
සහ ස්ථාන අංක සමඟ කපා දමන්න
tr -d '[:digit:]'
ඒවා අපේ ප්රස්ථාර රේඛාවේ අවසානයට එකතු කරනවාට වඩා. ඒක තමයි!
නිමැවුම් පිරිවිතරයන්ගේ දිග දැනටමත් සින්ටැක්ස් සමඟ සංයුති කිරීමට Git ට හොඳ විකල්පයක් ඇත'%><(amount_of_characters,truncate_option)'
ඛණ්ඩය , එමඟින් වම් '>' හෝ දකුණ '<' පැත්තෙන් සුදු පැහැති අවකාශයන් එක් කරන අතර ආරම්භයේ සිට 'ltrunc', මැද 'mtrunc' හෝ අවසානයෙන් අක්ෂර කපා දැමිය හැකිය. 'ටන්ක'.
එය වැදගත් අනුරූප GIT තීරුව සඳහා එම දිග වටිනාකම් එහිදී එම cmd ගේ ඉහත භාවිතය.
ඔබේ අවශ්යතාවයට සරිලන පරිදි ඔබේම මේස පෙනුමක් ඇති මෝස්තරයක් සැකසීමට විනෝද වන්න.
අමතර:
නිවැරදි දිග අගය ලබා ගැනීම සඳහා ඔබට පහත දැක්වෙන ස්නිපටය භාවිතා කළ හැකිය
while read -r graph;do
chars=$(sed -nl1000 'l' <<< "$graph" | grep -Eo '\\\\|\||\/|\ |\*|_' | wc -l)
[[ $chars -gt ${max_chars:-0} ]] && max_chars=$chars
done < <(git log --all --graph --pretty=format:' ')
ඉහත නිවැරදි දිග අගය ලෙස $ max_chars භාවිතා කරන්න.
සංස්කරණය 1 : යටි ගසෙහි යටි ඉරි ඇඳීම ද භාවිතා වන බව දැක ඒ අනුව ඉහත කේත ස්නිපෙට් සංස්කරණය කරන්න. වෙනත් අක්ෂර නොමැති නම්, කරුණාකර අදහස් දක්වන්න.
සංස්කරණය 2 : ඔබට ශාඛා හා ටැග් ඇතුළත් කිරීම් වටා ඇති වරහන් ඉවත් කිරීමට අවශ්ය නම්, EDIT 3 හි මෙන්, git විධානයෙහි "% d" වෙනුවට "% D" භාවිතා කරන්න.
සංස්කරණය 3 : සමහර විට ශාඛා හා ටැග් ඇතුළත් කිරීම් සඳහා ඔබ වඩාත් කැමති “ස්වයංක්රීය” වර්ණ විකල්පය විය හැකිද?
Git විධානයේ මෙම කොටස වෙනස් කරන්න (වර්ණය 214 )
%C(214)%>(15,trunc)%D%C(reset)
කිරීමට මෝටර් රථ
%C(auto)%>(15,trunc)%D%C(reset)
4 වන සංස්කරණය කරන්න : නැතහොත් එම කොටස සඳහා ඔබේම වර්ණ මිශ්රණයට ඔබ කැමතිද?
හිස, ශාඛා නම් සහ ටැග් ශෛලිය හැඩගස්වා ගැනීමට පළමුව EDIT 3 හි මෙන් අපගේ git විධානයෙහි “ස්වයංක්රීය” වර්ණ විකල්පය අවශ්ය වේ.
මෙම පේළි 3 එකතු කිරීමෙන් අපට දන්නා වර්ණ අගයන් අපගේම දෑ සමඟ ප්රතිස්ථාපනය කළ හැකිය
# branch name styling
branch=${branch//1;32m/38;5;214m}
# head styling
branch=${branch//1;36m/3;5;1;38;5;196m}
# tag styling
branch=${branch//1;33m/1;38;5;222m}
පේළියට පෙර
branch_all="$branch_all$(printf '%15s' "$branch")\n"
අපේ කේත ස්නිපටයේ. ආදේශන අගයන් ඉහත වර්ණ නිපදවයි.
උදාහරණයක් ලෙස හිස සඳහා ආදේශන අගය වේ
3;5;1;38;5;196
එහිදී 3; ඇල අකුරු, 5; දැල්වීම සඳහා සහ 1; 38; 5; 196 වර්ණය සඳහා.වැඩි තොරතුරු සඳහා මෙතැනින් ආරම්භ කරන්න. සටහන: මෙම හැසිරීම ඔබගේ ප්රියතම පර්යන්තය මත රඳා පවතින අතර එබැවින් එය භාවිතා කළ නොහැක.
නමුත් ඔබට කැමති ඕනෑම වර්ණ අගයක් තෝරා ගත හැකිය.
Git වර්ණ අගයන් සහ ANSI සමානකම් පිළිබඳ දළ විශ්ලේෂණය
ඔබ සමඟ ලැයිස්තුවක් සොයා ගනී Git color / style විකල්පයක් .
නිවැරදි වර්ණ සඳහා ඔබේ කොන්සෝලයේ ප්රතිදානය ඔබට අවශ්ය නම් (ඉහත පින්තූරය ස්ටැකෝවර් ප්රවාහයෙන් පරිමාණය කර ඇත) ඔබට ප්රතිදානය සමඟ නිෂ්පාදනය කළ හැකිය
for ((i=0;i<=255;i++));do
while IFS='+' read -r tree hash;do
echo -e "$(printf '%-10s' "(bold $i)") $hash $(sed -nl500 'l' <<< "$hash"|grep -Eom 1 '[0-9;]*[0-9]m'|tr -d 'm')"
done < <(git log --all --graph --decorate=short --color --pretty=format:'+%C(bold '$i')%h%C(reset)'|head -n 1)
done
ඔබගේ git ලොග් ප්රතිදානයෙන් පළමු කැපවීම භාවිතා කරන ඔබගේ git ව්යාපෘති මාවතේ.
සංස්කරණය 5 : සාමාජික "ඇන්ඩ්රාස් ඩීක්" සඳහන් කළ පරිදි, මෙම කේතය භාවිතා කරන ආකාරය පිළිබඳ ක්රම කිහිපයක් තිබේ:
1) අන්වර්ථයක් ලෙස :
අන්වර්ථය පරාමිතීන් භාර නොගන්නා නමුත් ශ්රිතයකට ඔබේ .bashrc හි අර්ථ දැක්විය හැකිය
function git_tably () {
unset branch_all graph_all hash_all message_all time_all max_chars
### add here the same code as under "2) as a shell-script" ###
}
ඔබගේ git ව්යාපෘති මාවත යටතේ හෝ ඔබට අවශ්ය ඕනෑම තැනක සිට git_table (වගුව වැනි ව්යුත්පන්නය) ශ්රිතය පළමු පරාමිතිය ලෙස අමතන්න.
2) ෂෙල්-ස්ක්රිප්ට් ලෙස :
Git ව්යාපෘති නාමාවලියක් එහි පළමු පරාමිතිය ලෙස සම්මත කිරීමට හෝ හිස් නම්, සාමාන්ය හැසිරීම මෙන් වැඩ කරන නාමාවලිය ගන්න. එය සම්පූර්ණයෙන්ම අප සතුව ඇත
# edit your color/style preferences here or use empty values for git auto style
tag_style="1;38;5;222"
head_style="1;3;5;1;38;5;196"
branch_style="38;5;214"
# determine the max character length of your git tree
while IFS=+ read -r graph;do
chars_count=$(sed -nl1000 'l' <<< "$graph" | grep -Eo '\\\\|\||\/|\ |\*|_' | wc -l)
[[ $chars_count -gt ${max_chars:-0} ]] && max_chars=$chars_count
done < <(cd "${1:-"$PWD"}" && git log --all --graph --pretty=format:' ')
# create the columns for your prefered tablelike git graph output
while IFS=+ read -r graph hash time branch message;do
# count needed amount of whitespaces and create them
whitespaces=$(($max_chars-$(sed -nl1000 'l' <<< "$graph" | grep -Eo '\\\\|\||\/|\ |\*|_' | wc -l)))
whitespaces=$(seq -s' ' $whitespaces|tr -d '[:digit:]')
# show hashes besides the tree ...
#graph_all="$graph_all$graph$(printf '%7s' "$hash")$whitespaces \n"
# ... or in an own column
graph_all="$graph_all$graph$whitespaces\n"
hash_all="$hash_all$(printf '%7s' "$hash") \n"
# format all other columns
time_all="$time_all$(printf '%12s' "$time") \n"
branch=${branch//1;32m/${branch_style:-1;32}m}
branch=${branch//1;36m/${head_style:-1;36}m}
branch=${branch//1;33m/${tag_style:-1;33}m}
branch_all="$branch_all$(printf '%15s' "$branch")\n"
message_all="$message_all$message\n"
done < <(cd "${1:-"$PWD"}" && git log --all --graph --decorate=short --color --pretty=format:'+%C(bold 214)%<(7,trunc)%h%C(reset)+%C(dim white)%>(12,trunc)%cr%C(reset)+%C(auto)%>(15,trunc)%D%C(reset)+%C(white)%s%C(reset)' && echo);
# paste the columns together and show the tablelike output
paste -d' ' <(echo -e "$time_all") <(echo -e "$branch_all") <(echo -e "$graph_all") <(echo -e "$hash_all") <(echo -e "$message_all")
3) git අන්වර්ථයක් ලෙස :
සමහර විට වඩාත් සුවපහසු ක්රමය වන්නේ ඔබේ .gitconfig හි git අන්වර්ථයක් එක් කිරීමයි
[color "decorate"]
HEAD = bold blink italic 196
branch = 214
tag = bold 222
[alias]
count-log = log --all --graph --pretty=format:' '
tably-log = log --all --graph --decorate=short --color --pretty=format:'+%C(bold 214)%<(7,trunc)%h%C(reset)+%C(dim white)%>(12,trunc)%cr%C(reset)+%C(auto)%>(15,trunc)%D%C(reset)+%C(white)%s%C(reset)'
tably = !bash -c '" \
while IFS=+ read -r graph;do \
chars_count=$(sed -nl1000 \"l\" <<< \"$graph\" | grep -Eo \"\\\\\\\\\\\\\\\\|\\||\\/|\\ |\\*|_\" | wc -l); \
[[ $chars_count -gt ${max_chars:-0} ]] && max_chars=$chars_count; \
done < <(git count-log && echo); \
while IFS=+ read -r graph hash time branch message;do \
chars=$(sed -nl1000 \"l\" <<< \"$graph\" | grep -Eo \"\\\\\\\\\\\\\\\\|\\||\\/|\\ |\\*|_\" | wc -l); \
whitespaces=$(($max_chars-$chars)); \
whitespaces=$(seq -s\" \" $whitespaces|tr -d \"[:digit:]\"); \
graph_all=\"$graph_all$graph$whitespaces\n\"; \
hash_all=\"$hash_all$(printf \"%7s\" \"$hash\") \n\"; \
time_all=\"$time_all$(printf \"%12s\" \"$time\") \n\"; \
branch_all=\"$branch_all$(printf \"%15s\" \"$branch\")\n\"; \
message_all=\"$message_all$message\n\"; \
done < <(git tably-log && echo); \
paste -d\" \" <(echo -e \"$time_all\") <(echo -e \"$branch_all\") <(echo -e \"$graph_all\") \
<(echo -e \"$hash_all\") <(echo -e \"$message_all\"); \
'"
git tably
ඕනෑම ව්යාපෘති මාර්ගයක් යටතේ ඇමතීමට වඩා .
Git කොතරම් බලවත්ද යත් ඔබට හිස, ටැග්, ... සෘජුවම ඉහත පෙන්වා ඇති පරිදි වෙනස් කර මෙතැනින් ගෙන යා හැකිය .
තවත් විසිතුරු විකල්පයක් නම් ඔබ වඩාත්ම කැමති ගස් වර්ණ තෝරා ගැනීමයි
[log]
graphColors = bold 160, blink 231 bold 239, bold 166, bold black 214, bold green, bold 24, cyan
එය ඔබට පිස්සු පෙනුමක් ලබා දෙන නමුත් සෑම විටම වගු වැනි git ලොග් ප්රතිදානයන් ලබා දෙයි
ඕනෑවට වඩා දිලිසෙනවා! හැකි දේ නිරූපණය කිරීමට. නිශ්චිත වර්ණ ඉතා ස්වල්පයක් වර්ණ පුනරාවර්තනයට මග පාදයි.
සම්පූර්ණ .gitconfig යොමු කිරීමක් එක් ක්ලික් කිරීමක් පමණි.
6 සංස්කරණය කරන්න : ඔබගේ ධනාත්මක නැගිටීම් නිසා මම ස්නිපටය වැඩි දියුණු කළෙමි. දැන් ඔබට ඕනෑම git log විධානයකින් එය පෝෂණය කළ හැකි අතර කේතය තවදුරටත් අනුවර්තනය කළ යුතු නොවේ. උත්සහ කරන්න!
එය ක්රියාත්මක වන්නේ කෙසේද?
ඉන්පසු අමතන්න
git tably YourLogAlias
හෝ
git tably YourLogAlias TreeColNumber
එහිදී TreeColNumber ඉහළින් සෑම විටම අර්ථ දක්වා ඇති අගයක් නැවත ලියයි.
සීමා කිරීම:
ඔබගේ ලොග් විධානයෙහි ඇති සෑම ස්ථානගත කිරීමේ ස්ථානයකටම පෙර
%><(<N>[,ltrunc|mtrunc|trunc])
, එක් ටන්ක විකල්පයක් සමඟ ඔබ භාවිතා කළ යුතුය
(සින්ටැක්ස් පැහැදිලි කිරීම් සඳහා https://git-scm.com/docs/pretty-formats බලන්න ),
කෙසේ වෙතත් ඕනෑම නව රේඛාවක අවසාන කැපවීමේ ස්ථානය එය නොමැතිව භාවිතා කළ හැකිය
අමතර අක්ෂර වැනි විසිතුරු කිරීම සඳහා අවශ්ය නම් (committer:
, <
හා >)
දී
...%C(dim white)(committer: %cn% <%ce>)%C(reset)...
වගු වැනි නිමැවුමක් ලබා ගැනීම සඳහා ඒවා කැපවූ ස්ථාන දරන්නාට පෙර සහ පසුව කෙලින්ම ලිවිය යුතුය
...%C(dim white)%<(25,trunc)(committer: %cn%<(25,trunc) <%ce>)%C(reset)...
නම්, --pretty=format:
විකල්පය සමීප එය සමග අන්තිම එක නොවේ %C(reset)
බොහොමයක් ලෙස
ඔබ හිස් නොවන නව රේඛා භාවිතා නොකරන තාක් කල් ඔබට සෑම තීරුවකම git ප්රස්ථාරය තැබිය හැකිය %n...
ඔබට අද්විතීය නොවන්නේ නම් ගැටළු ඇති කළ හැකි තීරු පරිසීමකය තෝරාගෙන භාවිතා කළ යුතුය
නිශ්චිත ලොග් අන්වර්ථයක් සඳහා ඔබ අර්ථ දක්වා ඇති ගස් තීරු අංකයේ නම විය යුතුය YourLogAlias-col
වර්ණ ප්රතිදානය සඳහා --color විකල්පය භාවිතා කරන්න
සාමාන්ය git ලොග් ප්රතිදානය හා සසඳන විට මෙය මන්දගාමී නමුත් හොඳයි
දැන් ඔබේ .gitconfig සඳහා වැඩි දියුණු කරන ලද ස්නිපටය
[color "decorate"]
HEAD = bold blink italic 196
branch = 214
tag = bold 222
[alias]
# delimiter used in every mylog alias as column seperator
delim = ^
# short overview about the last hashes without graph
mylog = log --all --decorate=short --color --pretty=format:'^%C(dim white)%>(12,trunc)%cr%C(reset)^%C(bold 214)%<(7,trunc)%h%C(reset)' -5
# log with hashes besides graph tree
mylog2 = log --all --graph --decorate=short --color --pretty=format:'%C(bold 214)%<(7,trunc)%h%C(reset)^%C(dim white)%>(12,trunc)%cr%C(reset)^%C(auto)%>(15,trunc)%D%C(reset)^%C(white)%<(80,trunc)%s%C(reset)'
mylog2-col= 3
# log with hashes in an own column and more time data
mylog3 = log --all --graph --decorate=short --color --pretty=format:'^%C(dim white)%>(12,trunc)%cr%C(reset)^%C(cyan)%<(10,trunc)%cs%C(reset)^%C(bold 214)%<(7,trunc)%h%C(reset)^%C(auto)%<(15,trunc)%D%C(reset)^%C(white)%s%C(reset)'
mylog3-col= 4
tably = !bash -c '" \
declare -A col_length; \
delim=$(git config alias.delim); \
git_log_cmd=$(git config alias.$1); \
git_tre_col=${2:-$(git config alias.$1-col)}; \
\
i=0; \
n=0; \
while IFS= read -r line; do \
((n++)); \
while read -d\"$delim\" -r col_info;do \
((i++)); \
[[ -z \"$col_info\" ]] && col_length[\"$n:$i\"]=${col_length[\"${last[$i]:-1}:$i\"]} && ((i--)) && continue; \
[[ $i -gt ${i_max:-0} ]] && i_max=$i; \
col_length[\"$n:$i\"]=$(grep -Eo \"\\([0-9]*,[lm]*trunc\\)\" <<< \"$col_info\" | grep -Eo \"[0-9]*\" | head -n 1); \
[[ -n \"${col_length[\"$n:$i\"]}\" ]] && last[$i]=$n; \
chars_extra=$(grep -Eo \"\\trunc\\).*\" <<< \"$col_info\"); \
chars_extra=${chars_extra#trunc)}; \
chars_begin=${chars_extra%%\\%*}; \
chars_extra=${chars_extra#*\\%}; \
case \" ad aD ae aE ai aI al aL an aN ar as at b B cd cD ce cE ci cI cl cL cn cN cr \
cs ct d D e f G? gd gD ge gE GF GG GK gn gN GP gs GS GT h H N p P s S t T \" in \
*\" ${chars_extra:0:2} \"*) \
chars_extra=${chars_extra:2}; \
chars_after=${chars_extra%%\\%*}; \
;; \
*\" ${chars_extra:0:1} \"*) \
chars_extra=${chars_extra:1}; \
chars_after=${chars_extra%%\\%*}; \
;; \
*) \
echo \"No Placeholder found. Probably no tablelike output.\"; \
continue; \
;; \
esac ; \
if [[ -n \"$chars_begin$chars_after\" ]];then \
len_extra=$(echo \"$chars_begin$chars_after\" | wc -m); \
col_length["$n:$i"]=$((${col_length["$n:$i"]}+$len_extra-1)); \
fi; \
\
done <<< \"${line#*=format:}$delim\"; \
i=1; \
done <<< \"$(echo -e \"${git_log_cmd//\\%n/\\\\n}\")\"; \
\
case \"$git_log_cmd\" in \
*\"--author-date-order\"*) \
log_count=\"log --all --graph --author-date-order --pretty=format:\\ \"; \
;; \
*\"--date-order\"*) \
log_count=\"log --all --graph --date-order --pretty=format:\\ \"; \
;; \
*\"--topo-order\"*) \
log_count=\"log --all --graph --topo-order --pretty=format:\\ \"; \
;; \
*) \
log_count=\"log --all --graph --pretty=format:\\ \"; \
;; \
esac; \
while IFS= read -r graph;do \
chars_count=$(sed -nl1000 \"l\" <<< \"$graph\" | grep -Eo \"\\\\\\\\\\\\\\\\|\\||\\/|\\ |\\*|_\" | wc -l); \
[[ ${chars_count:-0} -gt ${col_length["1:1"]:-0} ]] && col_length["1:1"]=$chars_count; \
done < <([[ -n \"$(grep -F graph <<< \"$git_log_cmd\")\" ]] && git $log_count && echo); \
\
l=0; \
while IFS= read -r line;do \
c=0; \
((l++)); \
[[ $l -gt $n ]] && l=1; \
while IFS= read -d\"$delim\" -r col_content;do \
((c++)); \
if [[ $c -eq 1 ]];then \
[[ -n \"$(grep -F \"*\" <<< \"$col_content\")\" ]] || l=2; \
chars=$(sed -nl1000 \"l\" <<< \"$col_content\" | grep -Eo \"\\\\\\\\\\\\\\\\|\\||\\/|\\ |\\*|_\" | wc -l); \
whitespaces=$((${col_length["1:1"]}-$chars)); \
whitespaces=$(seq -s\" \" $whitespaces|tr -d \"[:digit:]\"); \
col_content[1]=\"${col_content[1]}$col_content$whitespaces\n\"; \
else \
col_content[$c]=\"${col_content[$c]}$(printf \"%-${col_length[\"$l:$c\"]}s\" \"${col_content:-\"\"}\")\n\"; \
fi; \
done <<< \"$line$delim\"; \
for ((k=$c+1;k<=$i_max;k++));do \
empty_content=\"$(printf \"%-${col_length[\"$l:$k\"]:-${col_length[\"${last[$k]:-1}:$k\"]:-0}}s\" \"\")\"; \
col_content[$k]=\"${col_content[$k]}$empty_content\n\"; \
done; \
done < <(git $1 && echo); \
\
while read col_num;do \
if [[ -z \"$cont_all\" ]];then \
cont_all=${col_content[$col_num]}; \
else \
cont_all=$(paste -d\" \" <(echo -e \"$cont_all\") <(echo -e \"${col_content[$col_num]}\")); \
fi; \
done <<< $(seq 2 1 ${git_tre_col:-1};seq 1;seq $((${git_tre_col:-1}+1)) 1 $i_max); \
echo -e \"$cont_all\"; \
"' "git-tably"
ප්රතිපල:
හෝ පියාසර කරන නව TreeColNumber සමඟ
නැවතත්: ඔබේ අවශ්යතාවයට සරිලන පරිදි මේසයක් මෙන් පෙනෙන පෙනුමක් ලබා දීමට විනෝද වන්න.
ඩිටා උත්සාහ කරන්න . ඕනෑම ASCII රූප සටහනක් රූපයක් බවට පරිවර්තනය කළ හැකිය. Git ශාඛා මනසේ තබාගෙන නිර්මාණය කර නොතිබුණද, ප්රති .ල ගැන මා පුදුමයට පත් විය.
මූලාශ්රය (txt ගොනුව):
+--------+
| hotfix |
+---+----+
|
--*<---*<---*
^
|
\--*<---*
|
+---+----+
| master |
+--------+
විධානය:
java -jar ditaa0_9.jar ascii-graph.txt
ප්රති ult ලය:
එය පසුබිම් වර්ණ, ඉරුණු රේඛා, විවිධ හැඩයන් සහ තවත් දේ සඳහා සහය දක්වයි. උදාහරණ බලන්න .
ඔබේ ගබඩාව ගිට්ලැබ් හි තිබේ නම්, ඔබේ බ්රව්සරයේ SVG ලෙස විදහා දැක්වෙන පරිදි ඔබට එහි ප්රස්ථාර නිරූපණය භාවිතා කළ හැකිය.
ඔබේ ගබඩාවේ ප්රස්ථාර දර්ශනයට යන්න, උදා: https://gitlab.com/gitlab-org/gitter/webapp/network/develop
ප්රස්ථාරය පහළට අනුචලනය කරන්න (එය කම්මැලි බර පැටවේ!)
SVG අංගය නව ගොනුවකට පිටපත් කිරීමට ඔබගේ බ්රව්සරයේ පරීක්ෂක භාවිතා කරන්න
ඔබේ අභිමතය පරිදි එය විදැහුම්කරුවෙකු තුළ විවෘත කරන්න, උදා: ඉන්ක්ස්කේප්
සෘජු මෙවලමක් ගැන මම නොදනිමි, නමුත් සමහර විට ඔබට දත්ත තිත් ආකෘතියට අපනයනය කිරීමට ස්ක්රිප්ට් එකක් හැක් කර ග්රැෆ්විස් සමඟ ඉදිරිපත් කළ හැකිය.
io
විධානයන් සරල perl `git log [...]` විධානයන් ලෙස වෙනස් කිරීම මා වෙනුවෙන් ක්රියාත්මක විය.
brew install perl dot
හා පසුව cpan common::sense IO::all
එම පරායත්තයන් ලබා ගැනීමට. ඉන්පසු, ප්රතිදානය සුදුසු විධානයකට නල කරන්න git-graphviz | dot -Tpng -o repo.png
. කෙසේ වෙතත්, ප්රතිදානය git-big-picture වලට වඩා වෙනස් නොවේ .
රෆායෙල් වෙබ් ග්රැෆික් පුස්තකාලයේ නිරූපණයන්ගෙන් එකක් ලෙස විනෝදජනක Git commit ප්රස්ථාරයක් ඇත .
නිරූපණය ස්ථිතිකයි, නමුත් කේතය රැගෙන සජීවී දත්ත කට්ටලයක් සඳහා ඒවායේ ස්ථිතික දත්ත හුවමාරු කර ගැනීමට තරම් පහසු විය යුතුය - මම සිතන්නේ එය JSON ආකෘතියෙන් Git commit දත්ත පමණක් බවයි.
නිරූපණය මෙහි ඇත: http://dmitrybaranovskiy.github.io/raphael/github/impact.html
al / .oh-my-zsh / plugins / git / git.plugin.zsh හි සමහර අන්වර්ථ නාම
gke='\gitk --all $(git log -g --pretty=%h)'
glg='git log --stat'
glgg='git log --graph'
glgga='git log --graph --decorate --all'
glgm='git log --graph --max-count=10'
glgp='git log --stat -p'
glo='git log --oneline --decorate'
glog='git log --oneline --decorate --graph'
gloga='git log --oneline --decorate --graph --all'
glol='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit'
glola='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit --all'
OSX භාවිතා කරන්නන් සඳහා, මම @gospes උදාහරණය ගෙන එය gsed (හෝම්බ rew gnu-sed
හරහා ස්ථාපනය කර ඇත) සඳහා තරමක් වෙනස් කර වර්ණ වෙනස් කර ඇත (කළු පසුබිමක් සමඟ වැඩ කිරීමට, මුල් උදාහරණය එය කරන ආකාරය කෙසේ දැයි විශ්වාස නැත. උදාහරණයක් ලෙස එය කළු පසුබිමක් සහිත පර්යන්තයක කළු පා text ය නියම කරයි).
[alias]
# tree, vtree, stree support
logx = log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset)+%C(bold black)(%cr)%C(reset)+%C(auto)%d%C(reset)++\n+++ %C(bold black)%an%C(reset)%C(bold black): %s%C(reset)'
tree = log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset) %C(auto)%d%C(reset)\n %C(bold black)[%cr]%C(reset) %x09%C(bold black)%an: %s %C(reset)'
stree = !bash -c '" \
while IFS=+ read -r hash time branch message; do \
timelength=$(echo \"$time\" | gsed -r \"s:[^ ][[]([0-9]{1,2}(;[0-9]{1,2})?)?m::g\"); \
timelength=$(echo \"16+${#time}-${#timelength}\" | bc); \
printf \"%${timelength}s %s %s %s\n\" \"$time\" \"$hash\" \"$branch\" \"\"; \
done < <(git logx && echo);"' | less -r
vtree = !bash -c '" \
while IFS=+ read -r hash time branch message; do \
timelength=$(echo \"$time\" | gsed -r \"s:[^ ][[]([0-9]{1,2}(;[0-9]{1,2})?)?m::g\"); \
timelength=$(echo \"16+${#time}-${#timelength}\" | bc); \
printf \"%${timelength}s %s %s %s\n\" \"$time\" \"$hash\" \"$branch\" \"$message\"; \
done < <(git logx && echo);"' | less -r
OSX සඳහා යතුර නම් පළමුව gnu sed ස්ථාපනය කිරීමයි (එයට -r විකල්පය ඇත). හෝම්බ rew සමඟ වඩාත් පහසුවෙන් කළ හැකි අතර, එමඟින් පද්ධතිය ස්ථාපනය කර ඇති sed නැවත ලියන්නේ නැත, නමුත් ඒ වෙනුවට gnu sed "gsed" ලෙස ස්ථාපනය කරනු ඇත. ඕඑස්එක්ස් ක්රියා විරහිත වීම ගැන ඉහත අදහස් දැක්වූ ස්ලිප් ඩී. තොම්සන් මෙය උපකාරී වේ යැයි සිතමු .