\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{isaacnewton} \pdfinfo{ /Title (fugitive.pdf) /Creator (Cheatography) /Author (isaacnewton) /Subject (fugitive Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{13D126} \definecolor{LightBackground}{HTML}{F0FCF1} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{fugitive Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{isaacnewton} via \textcolor{DarkBackground}{\uline{cheatography.com/132431/cs/28768/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}isaacnewton \\ \uline{cheatography.com/isaacnewton} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 3rd August, 2021.\\ Updated 3rd August, 2021.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{p{1.04 cm} x{6.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Navigation (open)}} \tn % Row 0 \SetRowColor{LightBackground} `\textless{}cr\textgreater{}` & Open the file or `fugitive-object` under the cursor. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `o` & Open the file or `fugitive-object` under the cursor in a new split. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `gO` & Open the file or `fugitive-object` under the cursor in a new vertical split. \tn % Row Count 7 (+ 3) % Row 3 \SetRowColor{white} `O` & Open the file or `fugitive-object` under the cursor in a new tab. \tn % Row Count 9 (+ 2) % Row 4 \SetRowColor{LightBackground} `p` & Open the file or `fugitive-object` under the cursor in a preview window. \tn % Row Count 12 (+ 3) % Row 5 \SetRowColor{white} `\textasciitilde{}` & Open the current file in the `{[}count{]}th` first ancestor. \tn % Row Count 14 (+ 2) % Row 6 \SetRowColor{LightBackground} `P` & Open the current file in the `{[}count{]}th` parent. \tn % Row Count 16 (+ 2) % Row 7 \SetRowColor{white} `C` & Open the commit containing the current file. \tn % Row Count 18 (+ 2) % Row 8 \SetRowColor{LightBackground} `gi` & Open .git/info/exclude in a split. Use a count to open .gitignore. \tn % Row Count 20 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} x{7.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Navigation (jump to file)}} \tn % Row 0 \SetRowColor{LightBackground} `gu` & Jump to file {[}count{]} in the "Untracked" or "Unstaged" section. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `gU` & Jump to file {[}count{]} in the "Unstaged" section. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `gs` & Jump to file {[}count{]} in the "Staged" section. \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `gp` & Jump to file {[}count{]} in the "Unpushed" section. \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} `gP` & Jump to file {[}count{]} in the "Unpulled" section. \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} `gr` & Jump to file {[}count{]} in the "Rebasing" section. \tn % Row Count 12 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} x{7.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Staging/unstaging}} \tn % Row 0 \SetRowColor{LightBackground} `s` & Stage (add) the file or hunk under the cursor. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `u` & Unstage (reset) the file or hunk under the cursor. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `-` & Stage or unstage the file or hunk under the cursor. \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `U` & Unstage everything. \tn % Row Count 7 (+ 1) % Row 4 \SetRowColor{LightBackground} `X` & Discard the change under the cursor \tn % Row Count 8 (+ 1) % Row 5 \SetRowColor{white} `=` & Toggle an inline diff of the file under the cursor. \tn % Row Count 10 (+ 2) % Row 6 \SetRowColor{LightBackground} `\textgreater{}` & Insert an inline diff of the file under the cursor. \tn % Row Count 12 (+ 2) % Row 7 \SetRowColor{white} `\textless{}` & Remove the inline diff of the file under the cursor. \tn % Row Count 14 (+ 2) % Row 8 \SetRowColor{LightBackground} `gI` & Open `.git/info/exclude` in a split and add the file under the cursor. \tn % Row Count 16 (+ 2) % Row 9 \SetRowColor{white} `I` & Invoke `:Git add -{}-patch` or `reset -{}-patch` on the file under the cursor. \tn % Row Count 19 (+ 3) % Row 10 \SetRowColor{LightBackground} `P` & On untracked files, this instead calls `:Git add -{}-intent-to-add`. \tn % Row Count 21 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.76 cm} x{6.24 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Checkout/branch}} \tn % Row 0 \SetRowColor{LightBackground} `coo` & Check out the commit under the cursor. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `cb\textless{}Space\textgreater{}` & Populate command line with `":Git branch "`. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `co\textless{}Space\textgreater{}` & Populate command line with `":Git checkout "`. \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `cb?` & Show this help. \tn % Row Count 7 (+ 1) % Row 4 \SetRowColor{LightBackground} `co?` & Same as "`cb?`" \tn % Row Count 8 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.76 cm} x{6.24 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Stash}} \tn % Row 0 \SetRowColor{LightBackground} `czz` & Push stash. Pass a {[}count{]} of 1 to add `-{}-include-untracked` or 2 to add `-{}-all`. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} `czw` & Push stash of worktree. Like `czz` with `-{}-keep-index`. \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} `czA` & Apply topmost stash, or stash@\{count\}. \tn % Row Count 7 (+ 2) % Row 3 \SetRowColor{white} `cza` & Apply topmost stash, or stash@\{count\}, preserving the index. \tn % Row Count 9 (+ 2) % Row 4 \SetRowColor{LightBackground} `czP` & Pop topmost stash, or stash@\{count\}. \tn % Row Count 11 (+ 2) % Row 5 \SetRowColor{white} `czp` & Pop topmost stash, or stash@\{count\}, preserving the index. \tn % Row Count 13 (+ 2) % Row 6 \SetRowColor{LightBackground} `cz\textless{}space\textgreater{}` & Populate command line with `":Git stash "`. \tn % Row Count 15 (+ 2) % Row 7 \SetRowColor{white} `cz?` & Show this help. \tn % Row Count 16 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.6 cm} x{6.4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Rebase}} \tn % Row 0 \SetRowColor{LightBackground} `ri` & Perform an interactive rebase. \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `u` & Same as "`ri`" \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `rf` & Perform an autosquash rebase without editing the todo list. \tn % Row Count 4 (+ 2) % Row 3 \SetRowColor{white} `ru` & Perform an interactive rebase against @\{upstream\}. \tn % Row Count 6 (+ 2) % Row 4 \SetRowColor{LightBackground} `rp` & Perform an interactive rebase against @\{push\}. \tn % Row Count 8 (+ 2) % Row 5 \SetRowColor{white} `rr` & Continue the current rebase. \tn % Row Count 9 (+ 1) % Row 6 \SetRowColor{LightBackground} `rs` & Skip the current commit and continue the current rebase. \tn % Row Count 11 (+ 2) % Row 7 \SetRowColor{white} `ra` & Abort the current rebase. \tn % Row Count 12 (+ 1) % Row 8 \SetRowColor{LightBackground} `re` & Edit the current rebase todo list. \tn % Row Count 14 (+ 2) % Row 9 \SetRowColor{white} `rw` & Perform an interactive rebase with the commit under the cursor set to `reword`. \tn % Row Count 17 (+ 3) % Row 10 \SetRowColor{LightBackground} `rm` & Perform an interactive rebase with the commit under the cursor set to `edit`. \tn % Row Count 20 (+ 3) % Row 11 \SetRowColor{white} `rd` & Perform an interactive rebase with the commit under the cursor set to `drop`. \tn % Row Count 23 (+ 3) % Row 12 \SetRowColor{LightBackground} `r\textless{}space\textgreater{}` & Populate command line with `":Git rebase "`. \tn % Row Count 25 (+ 2) % Row 13 \SetRowColor{white} `r?` & Show this help. \tn % Row Count 26 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} x{7.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Navigation (jump)}} \tn % Row 0 \SetRowColor{LightBackground} `(` & Jump to the previous file, hunk, or revision. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `)` & Jump to the next file, hunk, or revision. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `{[}c` & Jump to previous hunk, expanding inline diffs automatically. \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `{]}c` & Jump to next hunk, expanding inline diffs automatically. \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} `{[}/` & Jump to previous file, collapsing inline diffs automatically. \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} `{[}m` & Same as "`{[}/`" \tn % Row Count 11 (+ 1) % Row 6 \SetRowColor{LightBackground} `{]}/` & Jump to next file, collapsing inline diffs automatically. \tn % Row Count 13 (+ 2) % Row 7 \SetRowColor{white} `{]}m` & Same as "`{]}/`" \tn % Row Count 14 (+ 1) % Row 8 \SetRowColor{LightBackground} `i` & Jump to the next file or hunk, expanding inline diffs automatically. \tn % Row Count 16 (+ 2) % Row 9 \SetRowColor{white} `{[}{[}` & Jump {[}count{]} sections backward. \tn % Row Count 17 (+ 1) % Row 10 \SetRowColor{LightBackground} `{]}{]}` & Jump {[}count{]} sections forward. \tn % Row Count 18 (+ 1) % Row 11 \SetRowColor{white} `{[}{]}` & Jump {[}count{]} section ends backward. \tn % Row Count 19 (+ 1) % Row 12 \SetRowColor{LightBackground} `{]}{[}` & Jump {[}count{]} section ends forward. \tn % Row Count 20 (+ 1) % Row 13 \SetRowColor{white} `*` & On the first column of a + or - diff line, search for the corresponding - or + line. \tn % Row Count 23 (+ 3) % Row 14 \SetRowColor{LightBackground} `\#` & Same as "*", but search backward. \tn % Row Count 24 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} x{7.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Diff}} \tn % Row 0 \SetRowColor{LightBackground} `dp` & Invoke `:Git` diff on the file under the cursor. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `dd` & Perform a `:Gdiffsplit` on the file under the cursor. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `dv` & Perform a `:Gvdiffsplit` on the file under the cursor. \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `ds` & Perform a `:Ghdiffsplit` on the file under the cursor. \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} `dh` & Perform a `:Ghdiffsplit` on the file under the cursor. \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} `dq` & Close all but one diff buffer, and `:diffoff`! the last one. \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} `d?` & Show this help. \tn % Row Count 13 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.88 cm} x{7.12 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Commit}} \tn % Row 0 \SetRowColor{LightBackground} `cc` & Create a commit. \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `ca` & Amend the last commit and edit the message. \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} `ce` & Amend the last commit without editing the message. \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} `cw` & Reword the last commit. \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} `cvc` & Create a commit with -v. \tn % Row Count 8 (+ 2) % Row 5 \SetRowColor{white} `cva` & Amend the last commit with -v \tn % Row Count 10 (+ 2) % Row 6 \SetRowColor{LightBackground} `crc` & Revert the commit under the cursor. \tn % Row Count 12 (+ 2) % Row 7 \SetRowColor{white} `crn` & Revert the commit under the cursor in the index and work tree, but do not actually commit the changes. \tn % Row Count 15 (+ 3) % Row 8 \SetRowColor{LightBackground} `c?` & Show this help. \tn % Row Count 16 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.76 cm} x{6.24 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Commit (command-line)}} \tn % Row 0 \SetRowColor{LightBackground} `c\textless{}space\textgreater{}` & Populate command line with `":Git commit "`. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `cr\textless{}space\textgreater{}` & Populate command line with `":Git revert "`. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `cm\textless{}space\textgreater{}` & Populate command line with `":Git merge "`. \tn % Row Count 6 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} x{7.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Commit (create a...)}} \tn % Row 0 \SetRowColor{LightBackground} `cf` & Create a `fixup!` commit for the commit under the cursor. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `cF` & Create a `fixup!` commit for the commit under the cursor and immediately rebase it. \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} `cs` & Create a `squash!` commit for the commit under the cursor. \tn % Row Count 7 (+ 2) % Row 3 \SetRowColor{white} `cS` & Create a `squash!` commit for the commit under the cursor and immediately rebase it. \tn % Row Count 10 (+ 3) % Row 4 \SetRowColor{LightBackground} `cA` & Create a `squash!` commit for the commit under the cursor and edit the message. \tn % Row Count 13 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} x{7.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Miscellaneous}} \tn % Row 0 \SetRowColor{LightBackground} `gq` & Close the status buffer. \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `.` & Start a `:` command line with the file under the cursor prepopulated. \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} `g?` & Show help for `fugitive-maps` \tn % Row Count 4 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.84 cm} x{6.16 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Global}} \tn % Row 0 \SetRowColor{LightBackground} `\textless{}c-r\textgreater{}\textless{}c-g\textgreater{}` & On the command line, recall the path to the current `fugitive-object` \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} `{[}"x{]}y\textless{}c-g\textgreater{}` & Yank the path to the current `fugitive-object`. \tn % Row Count 5 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}