Git Quick Reference
Adding the ShortCut:
$ git config --global alias.add-commit '!git add -A && git commit' $ git add-commit $ git config --global --edit [user] name = Raju email = [email protected] [gui] recentrepo = C:/Git [alias] add-comment = !git add -A && git commit
Getting help:
git help command or git command --help Show help for a command
Repository creation:
git init Create a repository in the current directory git clone url Clone a remote repository into a subdirectory git clone --recursive url Clone a remote repository into a subdirectory recursively including the submodules
File operations:
git add path Add file or files in directory recursively git rm path Remove file or directory from the working tree -f Force deletion of file(s) from disk git mv path destination Move file or directory to new location -f Overwrite existing destination files git checkout [rev] file Restore file from current branch or revision -f Overwrite uncommitted local changes
Working tree:
git status Show status of the working tree git diff [path] Show diff of changes in the working tree git diff HEAD path Show diff of stages and unstaged changes git add path Stage file for commit git reset HEAD path Unstage file for commit git commit Commit files that has been staged (with git-add) -a Automatically stage all modified files git reset --soft HEAD^ Undo commit & keep changes in the working tree git reset --hard HEAD^ Reset the working tree to the last commit git clean Clean unknown files from the working tree
Examining History:
git log [path] View commit log, optionally for specific path git log [from[..to]] View commit log for a given revision range --stat List diffstat for each revision -S'pattern' Search history for changes matching pattern git blame [file] Show file annotated with line modifications
Remote repositories – remotes:
git fetch [remote] Fetch changes from a remote repository git pull [remote] Fetch and merge changes from a remote repository git push [remote] Push changes to a remote repository git remote List remote repositories git remote add remote url Add remote to list of tracked repositories
Branches:
git checkout branch Switch working tree to branch -b branch Create branch before switching to it git branch List local branches git branch -f branch rev Overwrite existing branch, start from revision git merge branch Merge changes from branch
Exporting and importing:
git apply - < file Apply patch from stdin git format-patch from[..to] Format a patch with log message and diffstat git archive rev > file Export snapshot of revision to file --prefix=dir/ Nest all files in the snapshot in directory --format=[tar|zip] Specify archive format to use: tar or zip
Tags:
git tag name [revision] Create tag for a given revision -s Sign tag with your private key using GPG -l [pattern] List tags, optionally matching pattern
File status flags:
M modified File has been modified
C copy-edit File has been copied and modified
R rename-edit File has been renamed and modified
A added File has been added
D deleted File has been deleted
U unmerged File has conflicts after a merge
Check out, review, and merge locally
Step 1. Fetch and check out the branch for this merge request
git fetch origin git checkout -b develop origin/develop
Step 2. Review the changes locally
Step 3. Merge the branch and fix any conflicts that come up
git checkout master git merge --no-ff develop
Step 4. Push the result of the merge to Git
git push origin master
References
https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud
https://guides.github.com/introduction/flow/