git config --global user.name ???
git config --global user.email ???
git config --global core.editor vim
git config --global core.quotepath false
git config --global core.safecrlf false
git config --global push.default simple
git config --global rerere.enabled true
git config --global alias.c checkout
git config --global alias.d diff
git config --global alias.dc "diff --cached"
git config --global alias.dw "diff --word-diff"
git config --global alias.l "log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
git config --global alias.s status -sb
git config --global alias.reset-permission '!git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply'
- Progit [MUST READ]
‼️ - Oh Shit, Git!?! [MUST READ]
‼️ - Git Internals
- Git Magic
- Git Community Book 中文版
- gitready.com - learn git one commit at a time
- GotGitHub - an open source E-book about GitHub in Chinese
- merge vs rebase
- How merge works
- What's in a good commit [MUST READ]
‼️ - Colorful bash prompt reflecting git status
- github-cheat-sheet
- https://www.atlassian.com/git/workflows
- Understanding the Git Workflow
- A Git Workflow for Agile Teams
- GitHub flow
- A successful Git branching model [MUST READ]
‼️
- GIT utilities -- repo summary, repl, changelog population, author commit percentages and more
- tig - Text-mode interface for git
- gitlabhq - Project management and code hosting application
- gollum - A simple, Git-powered wiki with a sweet API and local frontend
-
Exclude files when git diff
git diff oldBranch newBranch --name-only | egrep -v "(exclude1|exclude2)" | xargs git diff oldBranch newBranch --
Git is just a stupid content tracker.
It's used as a SCM, but not really designed as one.
Consider it as a file system.