Skip to content

Instantly share code, notes, and snippets.

@colek42
Created December 6, 2015 01:38
Show Gist options
  • Save colek42/97b974869acaff5a07e3 to your computer and use it in GitHub Desktop.
Save colek42/97b974869acaff5a07e3 to your computer and use it in GitHub Desktop.
git hub cheat sheet
luisbg
@luisbg
luis@debethencourt.com
Ohloh profile for Luis de Bethencourt
Blogalia
< Diciembre 2015
Lu Ma Mi Ju Vi Sa Do
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Creative Commons License
planet gnome
planet ubuntu
alberto ruiz
andy wingo
jeff fortin
slomo's blog
jan schmidt
vincent's random waffle
"all religions, arts and sciences are branches of the same tree. all these aspirations are directed toward ennobling man's life, lifting it from the sphere of mere physical existence and leading the individual towards freedom." albert einstein
Git Cheat Sheet
A few weeks ago I created this Git Cheat Sheet as a reference for commands I use at least once a month. I've found it useful and I'm sharing it so others find it useful too. There are also markdown and org-mode versions available.
Configure
git config –global user.name "[name]"
Sets the name you want attached to your commit transactions
git config –global user.email "[email address]"
Sets the email you want attached to your commit transactions
git config –global color.ui auto
Enables helpful colorization of command line output
git config –global push.default current
Update a branch with the same name as current branch if no refspec is given
git config –global core.editor [editor]
Which editor to use when commit and tag that lets you edit messages
git config –global diff.tool [tool]
Specify which command to invoke as the specified tool for git difftool
Create repositories
git init [project-name]
Creates a new local repository with the specified name
git clone [url]
Downloads a project nd its entire version history
Make changes
git status
Lists all new or modified files to be committed
git status -s
Short view of status
git diff
Shows file differences not yet staged
git add [file]
Snapshots the file in preparation for versioning
git add .
Add all modified files to be commited
git add '*.txt'
Add only certain files
git add –patch filename.x (or -p for short)
Snapshot only chunks of a file
git rm [file]
Tell git not to track the file anymore
git diff –staged
Show what has been added to the index via git add but not yet committed
git diff HEAD
Shows what has changed since the last commit.
git diff HEAD^
Shows what has changed since the commit before the latest commit
git diff [branch]
Compare current branch to some other branch
git difftool -d
Same as diff, but opens changes via difftool that you have configured
git difftool -d master..
See only changes made in the current branch
git diff –no-commit-id –name-only –no-merges origin/master…
See only the file names that has changed in current branch
git diff –stat
See statistics on what files have changed and how
git reset [file]
Unstages the file, but preserves its contents
git commit
Record changes to git. Default editor will open for a commit message
git commit -m "[descriptive message]"
Records file snapshots permanently in version history
git commit –amend
Changing the history, of the HEAD commit
Group changes
git branch
Lists all local branches in the current directory
git branch [branch-name]
Create a new branch
git checkout [branch-name]
Switches to the specified branch and updates the working directory
git checkout -b <name> <remote>/<branch>
Switches to a remote branch
git checkout [filename]
Return file to it's previous version, if it hasn’t been staged yet
git merge [branch]
Combines the specified branch's history into the current branch
git merge –no–ff [branch]
Merge branch without fast forwarding
git branch -a
See the full list of local and remote branches
git branch -d [branch]
Deletes the specified branch
git branch -D [branch]
Hard branch delete, will not complain
git branch -m <oldname> <newname>
Rename a branch
Refactor filenames
git rm [file]
Deletes the file from the working directory and stages the deletion
git rm –cached [file]
Removes the file from version control but preserves the file locally
git mv [file-original] [file-renamed]
Changes the file name and prepares it for commit
Suppress tracking
.gitignore
*.log
build/
temp-*
A text file named .gitignore suppresses accidental versioning of files and paths matching the specified patterns
git ls-files –other –ignored –exclude-standard
Lists all ignored files in this project
Save fragments
git stash
Temporarily stores all modified tracked files
git stash pop
Restores the most recently stashed files
git stash list
Lists all stashed changesets
git stash drop
Discards the most recently stashed changeset
Review history
git log
Lists version history for the current branch
git log –follow [file]
Lists version history for a file, including renames
git log –pretty=format:"%h %s" –graph
Pretty commit view, you can customize it as much as you want
git log –author='Name' –after={1.week.ago} –pretty=oneline –abbrev-commit
See what the author has worked on in the last week
git log –no-merges master..
See only changes in this branch
git diff [file-branch]…[second-branch]
Shows content differences between two branches
git show [commit]
Outputs metadata and content changes of the specified commit
Redo commits
git reset
Unstage pending changes, the changes will still remain on file system
git reset [commit/tag]
Undoes all commits after [commit], preserving changes locally
git reset –hard [commit]
Discards all history and changes back to the specified commit
Synchronize changes
git fetch [bookmark]
Downloads all history from the repository bookmark
git fetch -p
Update history of remote branches, you can fetch and purge
git merge [bookmark]/[branch]
Combines bookmark's branch into current local branch
git push
Push current branch to remote branch
git push [remote] [branch]
Manually specify remote and branch to use every time
git push -u origin master
If a remote branch is not set up as an upstream, you can make it so
git pull
Downloads bookmark history and incorporates changes
git pull [remote] [branch]
Specify to pull a specific branch
git remote
See list of remote repos available
git remote -v
Detailed view of remote repos available
git remote add [remote] [url]
Add a new remote
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment