From bc53e41dbd2d9c050f0641ca70279836d8cacd45 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Mon, 10 Jun 2013 15:13:07 -0400 Subject: [PATCH] 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. --- version-control/git/cheat-sheet.md | 80 ++++++++++++++++++- .../instructor_notes.md => instructor.md} | 0 2 files changed, 78 insertions(+), 2 deletions(-) rename version-control/git/{git-and-github/instructor_notes.md => instructor.md} (100%) 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 -- 2.26.2