From: W. Trevor King Date: Mon, 10 Jun 2013 19:13:07 +0000 (-0400) Subject: version-control/git: Use git-and-github notes X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=bc53e41dbd2d9c050f0641ca70279836d8cacd45;p=swc-version-control-git.git version-control/git: Use git-and-github notes 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. --- diff --git a/version-control/git/cheat-sheet.md b/version-control/git/cheat-sheet.md index 0b6a9bd..e3030f8 100644 --- a/version-control/git/cheat-sheet.md +++ b/version-control/git/cheat-sheet.md @@ -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 diff --git a/version-control/git/git-and-github/instructor_notes.md b/version-control/git/instructor.md similarity index 100% rename from version-control/git/git-and-github/instructor_notes.md rename to version-control/git/instructor.md