• Get a clean local copy of my GitHub repository with read & write access:

    $ git clone [email protected]:kdeldycke/scripts.git
  • Switch to another branch:

    $ git checkout another_branch
  • Set the current repository in the state it was at commit 1234567:

    $ git checkout 1234567
  • Get the current commit number:

    $ git rev-parse HEAD
  • Get a sorted list of all commit IDs:

    $ git rev-list --all --pretty=oneline | cut -d ' ' -f 1 | sort
  • Print a nice graph of your commits sorted by date:

    $ git log --graph --all --pretty=oneline --abbrev-commit --date-order
  • Revert a particular commit:

    $ git revert 119ff8
  • Destroy all your local changes and get back a sane repository:

    $ git reset --hard
  • Send local repository modifications to remote one:

    $ git push origin
  • Attach a tag to a given commit:

    $ git tag "1.2.3" 8fe2934d1552c97246836987f0ea08e10ba749ae
  • Publish all tags to the remote repository:

    $ git push --tags
  • Add a remote repository located on GitHub as a submodule in the ./folder/project-copy folder:

    $ git submodule add https://github.com/my-id/project.git ./folder/project-copy
  • While playing with backups of a local repository, you may encounter this error:

    Cannot rewrite branch(es) with a dirty working directory.
    

    In this case, you can get back a clean repository by removing all the unstaged changes:

    $ git stash

Other resources: