Git cheat sheet

From Simson Garfinkel
Jump to navigation Jump to search

Origin info

Initial checkout:

  git clone <url> --recursive

change origin (useful if you cloned from a github http: but want to save it with a

  git config remote.origin.url

Change origins for current and all submodules:

  git config -e

Make a signed tag and push to github

 git tag -u 'Simson L. Garfinkel <>' -s tcpflow-1.2.7 -m 'Release 1.2.7'
 git push --tags

Pull changes

From a forked repository's upstream. First we need to add 'upstream' as a name for a remote URL:

 git remote add upstream<<FOOBAR>>

Now we need to fetch the changes and merge them in:

 git fetch upstream        # fetches any new changes from original repository
 git merge upstream/master  # merges any changes fetched into your working files

This can be done as a single operation:

 git pull upstream/master

If there are local changes:

  • Resolve the conflicts
  • Note which conflicts you have resolved with git add conflictname.
  • commit your changes
  • push them to your origin/master:
 git push 


  git diff HEAD  # should never produce output because HEAD is always the checked out commit
  git diff origin/master # Difference between you and the master
  git log origin/master  # Report what the differences are

Compare with a remote fork and take changes

(in this case, with

   git remote add uckelman
   cat .git/config 
   git fetch uckelman
   git diff uckelman/master
   git diff master uckelman/master 
   git merge uckelman/master


[[Category::Cheat Sheets]]