version-control/git: Use git-and-github notes
authorW. Trevor King <wking@tremily.us>
Mon, 10 Jun 2013 19:13:07 +0000 (15:13 -0400)
committerW. Trevor King <wking@tremily.us>
Wed, 23 Oct 2013 03:14:11 +0000 (20:14 -0700)
Consolidate on these instructor notes because they are already in a
condensed format.  Remove the long-form local/remote READMEs, whose
content should be merged into the instructor guide.  Flesh out the
cheat sheet with additional commands mentioned in the new instructor
notes.

version-control/git/cheat-sheet.md
version-control/git/instructor.md [moved from version-control/git/git-and-github/instructor_notes.md with 100% similarity]

index 0b6a9bd849e57533536646dad30178ad10c1499c..e3030f81bf9e3cf1d152c483397ba5434831f3ed 100644 (file)
@@ -1,3 +1,16 @@
+Configuring
+===========
+
+* Tell Git who you are:
+
+        $ git config --global user.name 'User Name'
+        $ git config --global user.email 'user@email.com'
+
+* Customize the user interface:
+
+        $ git config --global core.editor nano
+        $ git config --global color.ui auto
+
 Basic use
 =========
 
@@ -37,9 +50,23 @@ Merging
 
         $ git add $FILES
 
+* Instead of merging `origin/master` into your local branch, you can
+  rebase your local branch onto `origin/master` (useful options:
+  `-i`):
+
+        $ git rebase origin/master
+
 Comparing changes
 =================
 
+* Compare the current working directory to the staging area:
+
+        $ git diff
+
+* Compare the staging area to the last commit:
+
+        $ git diff --cached
+
 * Compare the current working directory to the last commit:
 
         $ git diff HEAD
@@ -51,14 +78,15 @@ Browsing history
 
         $ git status
 
-* View past commits:
+* View past commits (useful options: `--oneline`, `--graph`,
+  `--decorate`, `--stat`, …):
 
         $ git log
 
 * Who wrote this line, and what were they thinking?
 
         $ git blame $FILES
-        $ git show $COMMIT_HASH
+        $ git show $COMMIT
 
 Recovering old versions
 =======================
@@ -96,6 +124,54 @@ Provenance
   increment `package.__version__` by hand
   (e.g. [pygit2][pygit2-version]).
 
+Branches
+========
+
+* What branch am I on?  What other branches are there?
+
+        $ git branch
+
+* Make a new branch (e.g. `some-feature`):
+
+        $ git branch some-feature
+
+* Change the current branch (e.g. to `some-feature`) and update the
+  staging area and working directory:
+
+        $ git checkout some-feature
+
+Remotes
+=======
+
+* List configured remotes (URL nicknames):
+
+        $ git remote
+
+* List configured remotes with push/pull URLs:
+
+        $ git remote -v
+
+* Add a new remote:
+
+        $ git remote add $NAME $URL
+
+Manipulating history
+====================
+
+* Squash new changes onto the most recent commit:
+
+        $ git commit --amend …
+
+* Move the current branch to `$COMMIT` without touching the staging
+  area or working directory:
+
+        $ git reset $COMMIT
+
+* Move the current branch to `$COMMIT` while also resetting the
+  staging area and working directory:
+
+        $ git reset --hard $COMMIT
+
 
 [git-version-gen]: http://git.kernel.org/cgit/git/git.git/tree/GIT-VERSION-GEN
 [git-makefile]: http://git.kernel.org/cgit/git/git.git/tree/Makefile