Skip to content

Commit

Permalink
Cheat sheet: make Git section much more extensive
Browse files Browse the repository at this point in the history
  • Loading branch information
betaveros committed Oct 5, 2014
1 parent 7a35462 commit 2db3691
Showing 1 changed file with 66 additions and 8 deletions.
74 changes: 66 additions & 8 deletions c/index.html
Expand Up @@ -26,10 +26,11 @@
a:link, a:visited {color: #ccc; text-shadow: white 1px 1px 1px;}
a:hover {color: #0cc;}
td {background-color: #333; border: 0;}
td.empty {background-color: #222;}
td.empty {background-color: #222; color: #444; }
th {background-color: #666; font-weight: bold;}
.cr, .crow td {background-color: #933;}
.cg {background-color: #363;}
.cb {background-color: #336;}
.padded td {padding: 5px;}
.toggle {color: #0cc;}
td.outside {background-color: #000;}
Expand Down Expand Up @@ -688,13 +689,70 @@ <h3>Packages</h3>
<h2 id="git"><span class="toggle" onClick="toggle('gitcont');return false">Git</span> <a href="#top">&uArr;</a></h2>
<div id="gitcont">
<table>
<tr><th>Command</th><th>Description</th></tr>
<tr><td>[git checkout master]<br/>git checkout (files)</td><td>Reset local unstaged changes</td></tr>
<tr><td>[]<br/>git reset HEAD (files)</td><td>Make changes unstaged</td></tr>
<tr><td>git diff</td><td>Unstaged vs staged</td></tr>
<tr><td>git diff --cached</td><td>Staged vs last commit</td></tr>
<tr><td>git diff HEAD</td><td>Working (unstaged / staged) vs last commit</td></tr>
<tr><td>git ls-files | xargs wc -l</td><td>Count lines...</td></tr>
<tr><th>Key</th></tr>
<tr><td>command, subcommand, flag etc.</td></tr>
<tr><td class="cr">file</td></tr>
<tr><td class="cg">commit / branch / tree-ish
<ul>
<li>HEAD = @ = thing pointing in repo</li>
<li>commit^ = commit~ = parent</li>
<li>mergecommit^2 = second parent</li>
<li>commit~2 = grandparent</li>
</ul>
</td></tr>
<tr><td class="cb">remote (origin, upstream)</td></tr>
</table>
<p>Remember there are <a href="http://ndpsoftware.com/git-cheatsheet.html">five areas</a>:</p>
<table>
<tr><th>Stash</th><th>Workspace</th><th>Index</th><th>Local Repo</th><th>Upstream</th></tr>
<tr><td>hide stuff</td><td>actual files that non-git stuff manipulate</td><td>staging area, --cached etc.</td><td>committed<br/>HEAD points somewhere here</td><td>push, pull</td></tr>
</table>
<p>The actual cheat sheet.</p>
<table>
<tr><th>Command</th><th colspan="4">Subcommands, flags, arguments</th><th>Description</th></tr>
<tr><td rowspan="35">git</td>
<td colspan="4">status</td><td class="empty"></td></tr>
<tr><td colspan="4">hist</td><td>[alias]<br/>&nbsp; &nbsp; hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short<br/>(see <a href="http://gitimmersion.com/lab_10.html">git immersion</a>)</td></tr>
<tr><td rowspan="3">add</td><td colspan="3" class="cr">files</td><td class="empty"></td></tr>
<tr><td colspan="3">-u / --update</td><td>all modifications and deletions</td></tr>
<tr><td colspan="3">-A / --all</td><td>all additions, modifications, and deletions</td></tr>
<tr><td rowspan="3">commit</td><td colspan="4" class="empty">&empty;</td></tr>
<tr><td colspan="3">-a / --all</td><td>like add -u</td></tr>
<tr><td colspan="3">--amend</td><td class="empty"></td></tr>
<tr><td rowspan="4">branch</td><td colspan="3">[-r / -a]</td><td>list (remote / all)</td></tr>
<tr><td>-d / -D</td><td colspan="2" class="cg">branch</td><td>delete (safe / forceful)</td></tr>
<tr><td class="cg" rowspan="2">newbranch</td><td colspan="2" class="empty">&empty;</td><td rowspan="2">new branch (but not checked out; you probably want checkout -b)</td></tr>
<tr><td colspan="2" class="cg">oldbranch</td></tr>
<tr><td rowspan="3">checkout</td><td class="cg" colspan="3">master</td><td class="empty"></td></tr>
<tr><td>-b</td><td class="cg" colspan="2">branch</td><td>First make new branch</td></tr>
<tr><td class="cr" colspan="3">file</td><td>Reset local unstaged changes</td></tr>
<tr><td rowspan="3">reset</td><td class="cg">HEAD</td><td class="cr" colspan="2">files</td><td>Reset index = make changes unstaged</td></tr>
<tr><td>--soft</td><td class="cg" colspan="2">branch</td><td>Reset HEAD</td></tr>
<tr><td>--hard</td><td class="cg" colspan="2">HEAD</td><td>Reset index and workspace = destroy changes</td></tr>
<tr><td rowspan="4">diff</td><td class="empty" colspan="3"><td>(Working = unstaged) vs staged</td></tr>
<tr><td colspan="3">--cached / --staged</td><td>Staged vs last commit</td></tr>
<tr><td class="cg" colspan="3">HEAD</td><td>Working vs last commit</td></tr>
<tr><td class="cg">HEAD^</td><td class="cg" colspan="2">HEAD</td><td>Changes of last commit (easily generalized)</td></tr>
<tr><td rowspan="2">remote</td><td class="empty" colspan="3"></td><td>list remotes</td></tr>
<tr><td>add</td><td class="cb">upstream</td><td class="cb">git://foo</td><td class="empty"></td></tr>
<tr><td rowspan="4">push</td><td class="empty" colspan="4">&empty;</td></tr>
<tr><td class="cb" rowspan="3">upstream</td><td class="cg" rowspan="3">branch</td><td class="empty" colspan="4">&empty;</td></tr>
<tr><td>-u / --set-upstream</td><td>track branches</td></tr>
<tr><td>-f / --force</td><td>after you screw up</td></tr>
<tr><td>merge</td><td class="cg" colspan="3">branch</td><td>Use some other tree-ish to extend this one</td></tr>
<tr><td rowspan="4">rebase</td><td class="cg" rowspan="2">stem</td><td class="empty" colspan="2"></td><td>Graft branch and commits somewhere else</td></tr>
<tr><td class="cg" colspan="2">tip</td><td>(tip will first get checked out)</td></tr>
<tr><td>-i / --interactive</td><td class="cg" colspan="2">HEAD~1337</td><td>interactive rebase: rearrange, edit, squash commits...
<ul>
<li>pick: keep as is</li>
<li>edit: make changes (can add commits etc.)</li>
<li>reword: only change commit message</li>
<li>squash: absorb into previous commit + message</li>
<li>fixup: absorb into previous commit, delete this message</li>
</ul></td></tr>
<tr><td colspan="3">--continue</td><td>with interactive</td></tr>
<tr><td>revert</td><td class="cg" colspan="3">tree-ish</td><td>Make a commit that restores to this commit</td></tr>
<tr><td>ls-files</td><td colspan="3">| xargs wc -l</td><td>Count lines...</td></tr>
</table>
</div>
<h2 id="ascii"><span class="toggle" onClick="toggle('asciicont');return false">Ascii</span> <a href="#top">&uArr;</a></h2>
Expand Down

0 comments on commit 2db3691

Please sign in to comment.