%load_ext jupyter_tikzload extension
preables
preamble = r"""
\usepackage{kotex}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\usetikzlibrary{arrows.meta}
\setmainfont{Noto Sans KR}
"""style_git_region = r"""
draw=black!70,
fill=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
"""style_git_file = r"""
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
"""style_git_operation = r"""
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
"""%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_01
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_02
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node (untracked) at (0,1) {untracked};
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node (untracked) at (0,1) {untracked};
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_03
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node[dashed] (untracked) at (0,1) {untracked};
\node (added) at (5,1) {added};
\end{scope}
\begin{scope}[
every edge/.style={(* style_git_operation *)}
]
\draw (untracked) edge node[above] {add 명령(복사)} (added);
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node[dashed] (untracked) at (0,1) {untracked};
\node (added) at (5,1) {added};
\end{scope}
\begin{scope}[
every edge/.style={
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
}
]
\draw (untracked) edge node[above] {add 명령(복사)} (added);
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_04
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node[dashed] (tracked clean) at (0,2) {tracked,clean};
\node[dashed] (untracked) at (0,1) {untracked};
\node[dashed] (added) at (5,1) {added};
\node[cross out] at (5,1) {};
\node (commit c1) at (10,1) {commit c1};
\end{scope}
\begin{scope}[
every edge/.style={(* style_git_operation *)}
]
\draw (added) edge[bend left] node[above] {commit 명령(이동)} (commit c1);
\draw (untracked) edge[bend left=0] (tracked clean);
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node[dashed] (tracked clean) at (0,2) {tracked,clean};
\node[dashed] (untracked) at (0,1) {untracked};
\node[dashed] (added) at (5,1) {added};
\node[cross out] at (5,1) {};
\node (commit c1) at (10,1) {commit c1};
\end{scope}
\begin{scope}[
every edge/.style={
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
}
]
\draw (added) edge[bend left] node[above] {commit 명령(이동)} (commit c1);
\draw (untracked) edge[bend left=0] (tracked clean);
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_05
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node (tracked modified) at (0,1) {tracked,modified};
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node (tracked modified) at (0,1) {tracked,modified};
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_06
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node[dashed] (tracked modified) at (0,1) {tracked,modified};
\node (tracked modified in stage) at (5,1) {tracked,modified};
\end{scope}
\begin{scope}[
every edge/.style={(* style_git_operation *)}
]
\draw (tracked modified) edge[bend left] node[above] {add 명령(복사)} (tracked modified in stage);
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node[dashed] (tracked modified) at (0,1) {tracked,modified};
\node (tracked modified in stage) at (5,1) {tracked,modified};
\end{scope}
\begin{scope}[
every edge/.style={
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
}
]
\draw (tracked modified) edge[bend left] node[above] {add 명령(복사)} (tracked modified in stage);
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_07
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node[dashed] (tracked clean) at (0,2) {tracked,clean};
\node[dashed] (tracked modified) at (0,1) {tracked,modified};
\node[dashed] (tracked modified in stage) at (5,1) {tracked,modified};
\node[cross out] at (5,1) {};
\node (commit c2) at (10,1) {commit c2};
\end{scope}
\begin{scope}[
every edge/.style={(* style_git_operation *)}
]
\draw (tracked modified in stage) edge[bend left] node[above] {commit 명령(이동)} (commit c2);
\draw (tracked modified) edge[bend left=0] (tracked clean);
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node[dashed] (tracked clean) at (0,2) {tracked,clean};
\node[dashed] (tracked modified) at (0,1) {tracked,modified};
\node[dashed] (tracked modified in stage) at (5,1) {tracked,modified};
\node[cross out] at (5,1) {};
\node (commit c2) at (10,1) {commit c2};
\end{scope}
\begin{scope}[
every edge/.style={
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
}
]
\draw (tracked modified in stage) edge[bend left] node[above] {commit 명령(이동)} (commit c2);
\draw (tracked modified) edge[bend left=0] (tracked clean);
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_08
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node[dashed] (tracked clean) at (0,2) {tracked,clean};
\node (tracked modified) at (0,1) {tracked,modified};
\node[cross out] at (0,1) {};
\node (commit c2) at (10,1) {commit c2};
\end{scope}
\begin{scope}[
every edge/.style={(* style_git_operation *)}
]
\draw (commit c2) edge[bend left=30] node[below] {restore 명령(복사)} (tracked modified);
\draw (tracked modified) edge[bend left=0] (tracked clean);
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node[dashed] (tracked clean) at (0,2) {tracked,clean};
\node (tracked modified) at (0,1) {tracked,modified};
\node[cross out] at (0,1) {};
\node (commit c2) at (10,1) {commit c2};
\end{scope}
\begin{scope}[
every edge/.style={
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
}
]
\draw (commit c2) edge[bend left=30] node[below] {restore 명령(복사)} (tracked modified);
\draw (tracked modified) edge[bend left=0] (tracked clean);
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_09
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node (tracked modified) at (0,1) {tracked,modified};
\node[dashed] (tracked modified in stage) at (5,1) {tracked,modified};
\node[cross out] at (5,1) {};
\node (commit c2) at (10,1) {commit c2};
\end{scope}
\begin{scope}[
every edge/.style={(* style_git_operation *)}
]
\draw (commit c2) edge[bend left] node[below] {git restore --staged 명령(복사)} (tracked modified in stage);
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node (tracked modified) at (0,1) {tracked,modified};
\node[dashed] (tracked modified in stage) at (5,1) {tracked,modified};
\node[cross out] at (5,1) {};
\node (commit c2) at (10,1) {commit c2};
\end{scope}
\begin{scope}[
every edge/.style={
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
}
]
\draw (commit c2) edge[bend left] node[below] {git restore --staged 명령(복사)} (tracked modified in stage);
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_10
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node (tracked modified) at (0,1) {tracked,modified};
\node (tracked modified in stage) at (5,1) {tracked,modified};
\end{scope}
\begin{scope}[
every edge/.style={(* style_git_operation *)}
]
\draw (tracked modified in stage) edge node[below] {git restore} (tracked modified);
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node (tracked modified) at (0,1) {tracked,modified};
\node (tracked modified in stage) at (5,1) {tracked,modified};
\end{scope}
\begin{scope}[
every edge/.style={
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
}
]
\draw (tracked modified in stage) edge node[below] {git restore} (tracked modified);
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_11
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node (tracked modified2) at (0,1) {tracked,modified2};
\node[cross out] at (0,1) {};
\node[dashed] (tracked modified) at (0,2) {tracked,modified};
\node (tracked modified in stage) at (5,1) {tracked,modified};
\end{scope}
\begin{scope}[
every edge/.style={(* style_git_operation *)}
]
\draw (tracked modified in stage) edge node[below] {git restore} (tracked modified2);
\draw (tracked modified2) edge[bend left=0] (tracked modified);
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node (tracked modified2) at (0,1) {tracked,modified2};
\node[cross out] at (0,1) {};
\node[dashed] (tracked modified) at (0,2) {tracked,modified};
\node (tracked modified in stage) at (5,1) {tracked,modified};
\end{scope}
\begin{scope}[
every edge/.style={
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
}
]
\draw (tracked modified in stage) edge node[below] {git restore} (tracked modified2);
\draw (tracked modified2) edge[bend left=0] (tracked modified);
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_12
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node (tracked deleted) at (0,1) {tracked,deleted};
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node (tracked deleted) at (0,1) {tracked,deleted};
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_13
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node[dashed] (tracked deleted) at (0,1) {tracked,deleted};
\node (tracked deleted in stage) at (5,1) {tracked,deleted};
\end{scope}
\begin{scope}[
every edge/.style={(* style_git_operation *)}
]
\draw (tracked deleted) edge[bend left] node[above] {add 명령(복사)} (tracked deleted in stage);
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node[dashed] (tracked deleted) at (0,1) {tracked,deleted};
\node (tracked deleted in stage) at (5,1) {tracked,deleted};
\end{scope}
\begin{scope}[
every edge/.style={
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
}
]
\draw (tracked deleted) edge[bend left] node[above] {add 명령(복사)} (tracked deleted in stage);
\end{scope}
\end{tikzpicture}
\end{document}

%%tikz -pt -e -tp xelatex -p "$preamble" -r -d 300 -S fig_basic_14
\begin{tikzpicture}
\begin{scope}[
every node/.style={(* style_git_region *)}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={(* style_git_file *)}
]
\node[dashed] (tracked deleted) at (0,1) {tracked,deleted};
\node[cross out] at (0,1) {};
\node[dashed] (tracked deleted in stage) at (5,1) {tracked,deleted};
\node[cross out] at (5,1) {};
\node (commit c3) at (10,1) {commit c3};
\end{scope}
\begin{scope}[
every edge/.style={(* style_git_operation *)}
]
\draw (tracked deleted in stage) edge[bend left] node[above] {commit 명령(이동)} (commit c3);
\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=lightgray!10,
minimum width=4cm,
minimum height=3.5cm,
rectangle,
line width=2pt
}
]
\node (worktree) at (0,1) {};
\node (stage) at (5,1) {};
\node (repository) at (10,1) {};
\end{scope}
\node (worktree-label) at (0,0) {워크트리};
\node (stage-label) at (5,0) {스테이지};
\node (repository-label) at (10,0) {레포지토리};
\begin{scope}[
every node/.style={
draw=black!70,
fill=lightgray!20,
minimum width=3.5cm,
minimum height=0.7cm,
rectangle,
line width=1pt
}
]
\node[dashed] (tracked deleted) at (0,1) {tracked,deleted};
\node[cross out] at (0,1) {};
\node[dashed] (tracked deleted in stage) at (5,1) {tracked,deleted};
\node[cross out] at (5,1) {};
\node (commit c3) at (10,1) {commit c3};
\end{scope}
\begin{scope}[
every edge/.style={
draw=black!70,
-Triangle,
line width=1.2pt,
bend left=80,
looseness=1.4
}
]
\draw (tracked deleted in stage) edge[bend left] node[above] {commit 명령(이동)} (commit c3);
\end{scope}
\end{tikzpicture}
\end{document}
