Git cheatsheet for cli

#Git cheatsheet

Here is a cheatsheet on git.


Create

  • Clone an existing repo
    $ git clone ssh:://user@my.com/repo.git
  • Create a new local repo
    $ git init

Local Changes

  • Changed files in your working directory
    $ git status
  • Changes to tracked files
    $ git diff
  • Add all current changes to the next commit
    $ git add .
  • Add some changes in < file > to the next commit
    $ git add -p < file >
  • Commit all local changes in tracked files
    $ git commit -a
  • Commit previously staged changes
    $ git commit
  • Change the last commit
    $ git commit --amend

Commit History

  • Show all commits, starting with newest
    $ git log
  • Show changes over time for a specific file
    $ git log -p < file >
  • Who changes what and when in < file >
    $ git blame < file >

Branches & Tags

  • List all existing branches
    $ git branch -av
  • Switch HEAD branch
    $ git checkout < branch >
  • Create a new branch based on your current HEAD
    $ git branch < new-branch >
  • Create a new tracking branch based on a remote branch
    $ git checkout --track < remote/branch >
  • Delete a local branch
    $ git branch -d < branch >
  • Mark the current commit with a tag
    $ git tag < tag-name >

Update & Publish

  • List all currently configured remotes
    $ git remote -v
  • Show information about a remote
    $ git remote show < remote >
  • Add new remote repository, named < remote >
    $ git remote add < shortname > < url >
  • Download all changes from < remote >, but don't integrate into HEAD
    $ git fetch < remote >
  • Download changes and directly merge/integrate into HEAD
    $ git pull < remote > < branch >
  • Publish local changes on a remote
    $ git push < remote > < branch >
  • Delete a branch on the remote
    $ git branch -dr < remote/branch >
  • Publish your tags
    $ git push --tags

Merge & Rebase

  • Merge < branch > into your current HEAD
    $ git merge < branch >
  • Rebase your current HEAD onto < branch >
    $ git rebase < branch >
  • Abort a rebase
    $ git rebase --abort
  • Continue a rebase after resolving conflicts
    $ git rebase --continue
  • Use your configured merge tool to solve conflicts
    $ git mergetool
  • Use your editor to manually solve conflicts and (after resolving) mark file as resolved
    $ git add < resolved-file >
    $ git rm < resolved-file >

Undo

  • Discard all local changes in your working directory
    $ git reset --hard HEAD
  • Discard local changes in a specific file
    $ git checkout HEAD < file >
  • Revert a commit (by producing a new commit with contrary changes)
    $ git revert < commit >
  • Reset your HEAD pointer to a previous commit and discard all changes since
    $ git reset --hard < commit >
  • and preserve all changes as unstaged changes
    $ git reset < commit >
  • and preserve uncommitted local changes
    $ git reset --keep < commit >

Learn git

twitter
twitter

Leave a Reply

Your email address will not be published. Required fields are marked *