the phrygian cap


luisbg

@luisbg

luis@debethencourt.com



Ohloh profile for Luis de Bethencourt
Blogalia




<Mayo 2016
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

5 Comentarios


Referencias (TrackBacks)

URL de trackback de esta historia http://luisbg.blogalia.com//trackbacks/76017

Comentarios

1
De: William Manley Fecha: 2015-12-04 18:15

If you like `git commit --amend` try `git commit --fixup=[sha]` followed by `git rebase -i --autosquash`. It allows you to change history of commits other than HEAD, but in a way where you're less likely to get confused if you manually fiddle with `git rebase` command list.



2
De: luisbg Fecha: 2015-12-04 18:44

That is a good trick Will!



3
De: Embedded Systems Fecha: 2015-12-05 20:19

Following the idea of luisbg a better way to change previous commits is to use the `git rebase -i Head~3` that will open for you the editor with all the options to rewrite, reorder, merge or delete your 3 previous commits. Just change the 3 by the number of commits you need to edit



4
De: Userman Fecha: 2015-12-06 02:22

What commit am I on?

git rev-parse HEAD



5
De: Matthew Russell Fecha: 2015-12-06 19:03

Good sheet. I use Oh-My-Zsh, so I always check my aliases for the shortcut. e.g. say I forget how to set my upstream, I do `alias | grep upstream` and get:

ggsup='git branch --set-upstream-to=origin/$(current_branch)'
glum='git pull upstream master'
gmum='git merge upstream/master'
gpu='git push upstream'



Nombre
Correo-e
URL
Dirección IP: 54.198.90.50 (8c664cecfc)
Comentario

©2007-2015 luis de bethencourt guimera
powered by Blogalia