Below is a quick start guide (aka cheet sheet) for using git.
# Create a new empty repo in a folder # (folder does not have to be empty) $ git init # Clone a remote repo to local location $ git clone https://github.com/username/repo-name ./local-repo-folder # Add changes (verbose flag helps!) # Note that this does not track deleted # files, use "git add -u -v" below $ git add . -v # Use to track deleted files # ("git add ." does not do this) $ git add -u -v # Stage all changed files, and show which files were staged $ git add -Av # Interactive change-by-change staging $ git add -p ## Commit to repo $ git commit -m "Commit message." ## Add remote push location to Github (called "origin") for current repo # Note that this is the https method, and will require you to # enter your password on every push. $ git remote add origin https://github.com/username/repo-name # Modify an existing push/pull location (in this case origin) $ git remote set-url origin https://new-url # Remove remote push location added in previous command (in this case origin) $ git remote rm origin # Delete local branches that are not present on remote $ git remote prune origin $ git remote prune origin --dry-run # Only list them, don't delete # Push to Github repo added in above command $ git push origin # Push a specific local branch to a specific remote branch $ git push origin my_local_branch:my_remote_branch # To add a lightweight tag to the latest commit # (in this example I am adding a version number) $ git tag v18.104.22.168 # To remove the lightweight tag added above $ git tag -d v22.214.171.124 # Push tags to remote repo location assigned above ("gh") # (these are not pushed by default, and this does not # push deleted tags, see below) $ git push origin --tags # Since I normally always want to push tags at the same # time as I push commits, I combine the two commands into # one line like so: $ git push origin; git push origin --tags # To push deleted tags to a remote location # (so it deletes the tags at the remote) $ git push origin :refs/tags/v126.96.36.199 # Show git branches $ git branch # Local $ git branch -r # Remote $ git branch -a # Local and remote # Create a new branch and checkout # to begin working on it $ git checkout -b my-new-branch # List all tags in repo $ git tag # Get repo info $ git status # Add a new sub-module to existing repo # Note that the local install path is relative to the root directory # of the repo $ git submodule add https://path.to.remote.repo ./local/install/path # To revert all uncommitted changes to modified files and delete untracked # files/directories (useful if you done edits which you no longer wish to # keep). Calling git reset --hard will print the commit the repo falls back to. $ git reset --hard $ git clean -fd # To print the SHA-1 (long version) of the current commit $ git rev-parse HEAD # To print changes made in the last two commits (useful to get # back up to speed on what you're working on) $ git diff HEAD~2
- Git Submodules
- Managing Large Repos
- Mercurial Speed Guide
- Git Ignore For Visual Studio
- Converting Mercurial Repos To Git