%load_ext jupyter_tikz
preamble = r"""
\usepackage{kotex}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\usetikzlibrary{arrows.meta}
\setmainfont{Noto Sans KR}
"""
style_git_commit = r"""
    draw=black!70,
    fill=green!20!lightgray,
    minimum width=1.8cm,
    minimum height=0.6cm,
    rounded rectangle,
    line width=2pt
"""
style_git_commit_pointer = r"""
    draw=black!70,
    -Triangle,
    line width=2pt
"""
style_git_branch = r"""
    draw=black!70,
    fill=CornflowerBlue,
    minimum width=1.5cm,
    minimum height=0.5cm,
    rectangle,
    line width=1.2pt
"""
style_git_branch_pointer = r"""
    draw=black!70,
    -Triangle,
    line width=1.2pt
"""
style_git_head = r"""
    draw=black!70,
    fill=Melon,
    minimum width=2cm,
    minimum height=1cm,
    rectangle,
    line width=2pt
"""
style_git_head_pointer = r"""
    draw=black!70,
    densely dotted,
    -Triangle,
    line width=2pt
"""
%%tikz -S fig_graph_01 -pt -e -tp xelatex -p "$preamble" -r -d 300
\begin{tikzpicture}
\begin{scope}[
    every node/.style={(* style_git_commit *)},
    every edge/.style={(* style_git_commit_pointer *)}
]
\node (c1) at  (0,0) {c1};
\node (c2) at  (3,0) {c2}; \path (c2) edge (c1);
\node (c3) at  (6,0) {c3}; \path (c3) edge (c2);
\node (c4) at  (9,0) {c4}; \path (c4) edge (c3);
\node (c5) at (12,0) {c5}; \path (c5) edge (c4);
\end{scope}

\end{tikzpicture}
\documentclass{standalone}
\usepackage{kotex}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\usetikzlibrary{arrows.meta}
\setmainfont{Noto Sans KR}
\begin{document}
    \begin{tikzpicture}
    \begin{scope}[
        every node/.style={
        draw=black!70,
        fill=green!20!lightgray,
        minimum width=1.8cm,
        minimum height=0.6cm,
        rounded rectangle,
        line width=2pt
    },
        every edge/.style={
        draw=black!70,
        -Triangle,
        line width=2pt
    }
    ]
    \node (c1) at  (0,0) {c1};
    \node (c2) at  (3,0) {c2}; \path (c2) edge (c1);
    \node (c3) at  (6,0) {c3}; \path (c3) edge (c2);
    \node (c4) at  (9,0) {c4}; \path (c4) edge (c3);
    \node (c5) at (12,0) {c5}; \path (c5) edge (c4);
    \end{scope}

    \end{tikzpicture}
\end{document}

%%tikz -S fig_graph_02 -pt -e -tp xelatex -p "$preamble" -r -d 300
\begin{tikzpicture}
\begin{scope}[
    every node/.style={(* style_git_commit *)},
    every edge/.style={(* style_git_commit_pointer *)}
]
\node (c1)  at  (0,7)  {c1};
\node (c2)  at  (3,7)  {c2}; \path  (c2) edge (c1);
\node (c3)  at  (6,7)  {c3}; \path  (c3) edge (c2);
\node (c4)  at  (9,7)  {c4}; \path  (c4) edge (c3);
\node (c5)  at (12,7)  {c5}; \path  (c5) edge (c4);
\node (c6)  at  (6,5)  {c6}; \path  (c6) edge (c2);
\node (c7)  at  (9,5)  {c7}; \path  (c7) edge (c6);
\node (c8)  at (12,5)  {c8}; \path  (c8) edge (c7);
\node (c9)  at  (6,3)  {c9}; \path  (c9) edge (c2);
\node (c10) at  (9,3) {c10}; \path (c10) edge (c9);
\node (c11) at  (9,1) {c11}; \path (c11) edge (c9);
\end{scope}

\end{tikzpicture}
\documentclass{standalone}
\usepackage{kotex}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\usetikzlibrary{arrows.meta}
\setmainfont{Noto Sans KR}
\begin{document}
    \begin{tikzpicture}
    \begin{scope}[
        every node/.style={
        draw=black!70,
        fill=green!20!lightgray,
        minimum width=1.8cm,
        minimum height=0.6cm,
        rounded rectangle,
        line width=2pt
    },
        every edge/.style={
        draw=black!70,
        -Triangle,
        line width=2pt
    }
    ]
    \node (c1)  at  (0,7)  {c1};
    \node (c2)  at  (3,7)  {c2}; \path  (c2) edge (c1);
    \node (c3)  at  (6,7)  {c3}; \path  (c3) edge (c2);
    \node (c4)  at  (9,7)  {c4}; \path  (c4) edge (c3);
    \node (c5)  at (12,7)  {c5}; \path  (c5) edge (c4);
    \node (c6)  at  (6,5)  {c6}; \path  (c6) edge (c2);
    \node (c7)  at  (9,5)  {c7}; \path  (c7) edge (c6);
    \node (c8)  at (12,5)  {c8}; \path  (c8) edge (c7);
    \node (c9)  at  (6,3)  {c9}; \path  (c9) edge (c2);
    \node (c10) at  (9,3) {c10}; \path (c10) edge (c9);
    \node (c11) at  (9,1) {c11}; \path (c11) edge (c9);
    \end{scope}

    \end{tikzpicture}
\end{document}

%%tikz -S fig_graph_03 -pt -e -tp xelatex -p "$preamble" -r -d 300
\begin{tikzpicture}
\begin{scope}[
    every node/.style={(* style_git_commit *)},
    every edge/.style={(* style_git_commit_pointer *)}
]
\node (c1)  at  (0,7)  {c1};
\node (c2)  at  (3,7)  {c2}; \path  (c2) edge (c1);
\node (c3)  at  (6,7)  {c3}; \path  (c3) edge (c2);
\node (c4)  at  (9,7)  {c4}; \path  (c4) edge (c3);
\node (c5)  at  (6,5)  {c5}; \path  (c5) edge (c2);
\node (c6)  at  (9,5)  {c6}; \path  (c6) edge (c5);
\node (c7)  at (12,7)  {c7}; \path  (c7) edge (c4);
                             \path  (c7) edge (c6);
\end{scope}

\end{tikzpicture}
\documentclass{standalone}
\usepackage{kotex}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\usetikzlibrary{arrows.meta}
\setmainfont{Noto Sans KR}
\begin{document}
    \begin{tikzpicture}
    \begin{scope}[
        every node/.style={
        draw=black!70,
        fill=green!20!lightgray,
        minimum width=1.8cm,
        minimum height=0.6cm,
        rounded rectangle,
        line width=2pt
    },
        every edge/.style={
        draw=black!70,
        -Triangle,
        line width=2pt
    }
    ]
    \node (c1)  at  (0,7)  {c1};
    \node (c2)  at  (3,7)  {c2}; \path  (c2) edge (c1);
    \node (c3)  at  (6,7)  {c3}; \path  (c3) edge (c2);
    \node (c4)  at  (9,7)  {c4}; \path  (c4) edge (c3);
    \node (c5)  at  (6,5)  {c5}; \path  (c5) edge (c2);
    \node (c6)  at  (9,5)  {c6}; \path  (c6) edge (c5);
    \node (c7)  at (12,7)  {c7}; \path  (c7) edge (c4);
                                 \path  (c7) edge (c6);
    \end{scope}

    \end{tikzpicture}
\end{document}

%%tikz -S fig_graph_04 -pt -e -tp xelatex -p "$preamble" -r -d 300
\begin{tikzpicture}
\begin{scope}[
    every node/.style={(* style_git_commit *)},
    every edge/.style={(* style_git_commit_pointer *)}
]
\node (c1) at  (0,7) {c1};
\node (c2) at  (3,7) {c2}; \path (c2) edge (c1);
\node (c3) at  (6,7) {c3}; \path (c3) edge (c2);
\node (c4) at  (9,7) {c4}; \path (c4) edge (c3);
\node[fill=red!20] (c5) at (12,7) {c5}; \path (c5) edge (c4);
\end{scope}

\begin{scope}[
    every node/.style={(* style_git_branch *)},
    every edge/.style={(* style_git_branch_pointer *)}
]
\node (main) at (12,6) {main}; \path (main) edge (c5);
\end{scope}

\end{tikzpicture}
\documentclass{standalone}
\usepackage{kotex}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\usetikzlibrary{arrows.meta}
\setmainfont{Noto Sans KR}
\begin{document}
    \begin{tikzpicture}
    \begin{scope}[
        every node/.style={
        draw=black!70,
        fill=green!20!lightgray,
        minimum width=1.8cm,
        minimum height=0.6cm,
        rounded rectangle,
        line width=2pt
    },
        every edge/.style={
        draw=black!70,
        -Triangle,
        line width=2pt
    }
    ]
    \node (c1) at  (0,7) {c1};
    \node (c2) at  (3,7) {c2}; \path (c2) edge (c1);
    \node (c3) at  (6,7) {c3}; \path (c3) edge (c2);
    \node (c4) at  (9,7) {c4}; \path (c4) edge (c3);
    \node[fill=red!20] (c5) at (12,7) {c5}; \path (c5) edge (c4);
    \end{scope}

    \begin{scope}[
        every node/.style={
        draw=black!70,
        fill=CornflowerBlue,
        minimum width=1.5cm,
        minimum height=0.5cm,
        rectangle,
        line width=1.2pt
    },
        every edge/.style={
        draw=black!70,
        -Triangle,
        line width=1.2pt
    }
    ]
    \node (main) at (12,6) {main}; \path (main) edge (c5);
    \end{scope}

    \end{tikzpicture}
\end{document}

%%tikz -S fig_graph_05 -pt -e -tp xelatex -p "$preamble" -r -d 300
\begin{tikzpicture}
\begin{scope}[
    every node/.style={(* style_git_commit *)},
    every edge/.style={(* style_git_commit_pointer *)}
]
\node (c1) at  (0,7) {c1};
\node (c2) at  (3,7) {c2}; \path (c2) edge (c1);
\node (c3) at  (6,7) {c3}; \path (c3) edge (c2);
\node (c4) at  (9,7) {c4}; \path (c4) edge (c3);
\node[fill=red!20] (c5) at (12,7) {c5}; \path (c5) edge (c4);
\end{scope}

\begin{scope}[
    every node/.style={(* style_git_branch *)},
    every edge/.style={(* style_git_branch_pointer *)}
]
\node (main) at (11,6) {main}; \path (main) edge (c5);
\node (dev)  at (13,6) {dev};  \path (dev) edge (c5);
\end{scope}

\end{tikzpicture}
\documentclass{standalone}
\usepackage{kotex}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\usetikzlibrary{arrows.meta}
\setmainfont{Noto Sans KR}
\begin{document}
    \begin{tikzpicture}
    \begin{scope}[
        every node/.style={
        draw=black!70,
        fill=green!20!lightgray,
        minimum width=1.8cm,
        minimum height=0.6cm,
        rounded rectangle,
        line width=2pt
    },
        every edge/.style={
        draw=black!70,
        -Triangle,
        line width=2pt
    }
    ]
    \node (c1) at  (0,7) {c1};
    \node (c2) at  (3,7) {c2}; \path (c2) edge (c1);
    \node (c3) at  (6,7) {c3}; \path (c3) edge (c2);
    \node (c4) at  (9,7) {c4}; \path (c4) edge (c3);
    \node[fill=red!20] (c5) at (12,7) {c5}; \path (c5) edge (c4);
    \end{scope}

    \begin{scope}[
        every node/.style={
        draw=black!70,
        fill=CornflowerBlue,
        minimum width=1.5cm,
        minimum height=0.5cm,
        rectangle,
        line width=1.2pt
    },
        every edge/.style={
        draw=black!70,
        -Triangle,
        line width=1.2pt
    }
    ]
    \node (main) at (11,6) {main}; \path (main) edge (c5);
    \node (dev)  at (13,6) {dev};  \path (dev) edge (c5);
    \end{scope}

    \end{tikzpicture}
\end{document}

%%tikz -S fig_graph_06 -pt -e -tp xelatex -p "$preamble" -r -d 300
\begin{tikzpicture}
\begin{scope}[
    every node/.style={(* style_git_commit *)},
    every edge/.style={(* style_git_commit_pointer *)}
]
\node (c1)  at  (0,7)  {c1};
\node (c2)  at  (3,7)  {c2}; \path  (c2) edge (c1);
\node (c3)  at  (6,7)  {c3}; \path  (c3) edge (c2);
\node (c4)  at  (9,7)  {c4}; \path  (c4) edge (c3);
\node[fill=red!20] (c5)  at (12,7)  {c5}; \path  (c5) edge (c4);
\node (c6)  at  (6,5)  {c6}; \path  (c6) edge (c2);
\node (c7)  at  (9,5)  {c7}; \path  (c7) edge (c6);
\node[fill=red!20] (c8)  at (12,5)  {c8}; \path  (c8) edge (c7);
\node (c9)  at  (6,3)  {c9}; \path  (c9) edge (c2);
\node[fill=red!20] (c10) at  (9,3) {c10}; \path (c10) edge (c9);
\node[fill=red!20] (c11) at  (9,1) {c11}; \path (c11) edge (c9);
\end{scope}

\begin{scope}[
    every node/.style={(* style_git_branch *)},
    every edge/.style={(* style_git_branch_pointer *)}
]
\node (main) at (12,6) {main}; \path (main) edge (c5);
\node (b1)   at (12,4) {b1};   \path (b1)   edge (c8);
\node (b2)   at  (9,2) {b2};   \path (b2)   edge (c10);
\node (b3)   at  (9,0) {b3};   \path (b3)   edge (c11);
\end{scope}

\end{tikzpicture}
\documentclass{standalone}
\usepackage{kotex}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\usetikzlibrary{arrows.meta}
\setmainfont{Noto Sans KR}
\begin{document}
    \begin{tikzpicture}
    \begin{scope}[
        every node/.style={
        draw=black!70,
        fill=green!20!lightgray,
        minimum width=1.8cm,
        minimum height=0.6cm,
        rounded rectangle,
        line width=2pt
    },
        every edge/.style={
        draw=black!70,
        -Triangle,
        line width=2pt
    }
    ]
    \node (c1)  at  (0,7)  {c1};
    \node (c2)  at  (3,7)  {c2}; \path  (c2) edge (c1);
    \node (c3)  at  (6,7)  {c3}; \path  (c3) edge (c2);
    \node (c4)  at  (9,7)  {c4}; \path  (c4) edge (c3);
    \node[fill=red!20] (c5)  at (12,7)  {c5}; \path  (c5) edge (c4);
    \node (c6)  at  (6,5)  {c6}; \path  (c6) edge (c2);
    \node (c7)  at  (9,5)  {c7}; \path  (c7) edge (c6);
    \node[fill=red!20] (c8)  at (12,5)  {c8}; \path  (c8) edge (c7);
    \node (c9)  at  (6,3)  {c9}; \path  (c9) edge (c2);
    \node[fill=red!20] (c10) at  (9,3) {c10}; \path (c10) edge (c9);
    \node[fill=red!20] (c11) at  (9,1) {c11}; \path (c11) edge (c9);
    \end{scope}

    \begin{scope}[
        every node/.style={
        draw=black!70,
        fill=CornflowerBlue,
        minimum width=1.5cm,
        minimum height=0.5cm,
        rectangle,
        line width=1.2pt
    },
        every edge/.style={
        draw=black!70,
        -Triangle,
        line width=1.2pt
    }
    ]
    \node (main) at (12,6) {main}; \path (main) edge (c5);
    \node (b1)   at (12,4) {b1};   \path (b1)   edge (c8);
    \node (b2)   at  (9,2) {b2};   \path (b2)   edge (c10);
    \node (b3)   at  (9,0) {b3};   \path (b3)   edge (c11);
    \end{scope}

    \end{tikzpicture}
\end{document}