This is a personal note. If there are any mistakes in writing, please email me. Git is a skillfull tool that beginners must learn. Of course, SVN is also a usefull tool. The actual management requirements of various projects in the company are different, so we need master it.
Quick Start 
setting info 
check info 
$ git config –system -list 或者 -l 
$ git config –global -l 
 
Config Level 
system level
/etc/gitconfig 系统级别的配置文件,针对所有用户,对应 git config –system 选项 
 
 
global level
${HOME}/.gitconfig 用户级别的配置文件,针对当前用户,对应 git config –global 选项 
 
 
normal project level
.git/config 项目级别的配置文件,针对当前项目,对应 git config 
 
 
作用强度:normal > global > system 
 
$ git config –system core.editor=’d:\notepad++’ 
$ git config –global color.ui auto 
$ git config –global color.status auto 
$ git config –global color.branch auto 
$ git config –global color.diff auto 
$ git config –global color.interactive auto 
$ git config –global alias.ii info 
$ git config –help    
 
 
单机下Git多账户 
1、touch C:\Users\wangyuan.ssh\config
 
2、config:
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # Default github user(xx@mail.com) Host github.com   HostName github.com   IdentityFile C:/Users/wangyuan/.ssh/id_rsa_github   User userNameFoo   PreferredAuthentications publickey    # Default github user(xx@mail.com) Host github.com   HostName git.oschina.net   IdentityFile C:/Users/wangyuan/.ssh/id_rsa_osa   User userNameBar   PreferredAuthentications publickey    # PreferredAuthentications可设为publickey,password publickey,keyboard-interactive等 
常用CMD 1 2 3 4 5 6 7 8 9 烂大街,必须会   $ git add .   $ git commit -m "give some word to explain this operation"    $ git push origin master      或者      $ git commit -am "give some word to explain this operation"    $ git push origin master 
1 2 3 4 5 6 7 $ git checkout -b dev 新建一个本地分支 dev $ git push -u origin dev 创建远端分支 dev $ git commit -am "origin-dev"  操作信息 commit $ git push origin dev 把本地 dev 分支推到 origin $ git branch --set-upstream branch-name origin/branch-name 如果需要,则建立本地分支与远端分支的关联 
1 2 3 4 git status 查看当前目录的文件状态   workingDirectory (untracked)   stagingStatus (unmodified modified)   gitRepos (staged) 
1 2 3 4 5 git checkout 切分支和撤销更改   $ git checkout -- file 撤销工作区对 file 的修改   $ git checkout . 把当前工作区中没有 add/commit 的所有文件恢复至上一次 add/commit 时的状态   $ git checkout dev 切换到本地 dev 分支   $ git checkout -b dev 创建并且换到本地 dev 分支 
1 2 3 4 5 git branch 查看当前所有分支,并且对当前分支标记 ⁎ 号   $ git branch dev 创建本地 dev 分支   $ git checkout -b dev 创建并切换到本地 dev 分支   $ git branch -d dev 删除本地 dev 分支   $ git branch -D feature 若从 dev 来的新功能分支 feature 还没有 merge 进 dev 就需要被删除,则使用 -D 来执行 
1 2 3 4 5 6 git remote 远端分支   $ git remote 列出已存在的分支   $ git remote --verbose 或者 -v 查看当前   $ git remote add origin https: //github.com/ AimuZsGitHub/tryGit.git 把当前 local master 推到 origin (这句话实际在说:local master branch add a remote branch named origin and  urld https...)   $ git remote add origin git@github.com: AimuZsGitHub/tryGit.git 不需要 authorization $ git remote get-url origin 查看当期远端叫作 origin 的地址 
1 2 3 git merge 合并   $ git merge dev 将 dev 的开发产品合并到当前分支   $ git merge --no-ff -m "mergeBranchWithACommit"  dev 用这种方式合并,则会有一次 commitId (但是自己测试中,直接 git merge dev 也是有 commitId 的,各位大能,如有阅读,敬请指教 ! ) 
1 2 git fetch >>>    $ git fetch >>>  
1 2 git rebase >>>    $ git rebase >>>  
1 2 git pull 从远端拉内容到本地   $ git pull origin master 从远端拉内容 
1 2 3 4 5 6 7 8 9 10 git stash 储存当前工作现场状态以便切换到其他分支工作   $ git stash list 查看所有被储存的工作现场      $ git stash list 查看所有   $ git stash apply stash@{0 } 恢复指定stash   $ git stash drop stash@{0 } 删除工作状态      或者      $ git stash pop 恢复到上一次 stash 并删除该 stash 
1 2 3  git log 展示 commit log $ git log -1  查看最后一次 log 信息    $ git log --graph 查看分支合并图 
1 2 3 4 5 6 7 8 9  git tag 打标签(标签建立在 commitId 之上)    $ git tag 查看本地所有的标签 $ git show v0 .0 .0 -release 查看 0  号标签信息 $ git tag v0 .0 .1 -release 为当前分支的内容打 1  号标签 $ git tag v0 .0 .2 -release commitID 为某次 commitID 打 2  号标签 $ git tag -a v0 .0 .3 -release -m "explain to this tag"  commitID 创建说明性标签 -a指定标签名是 3  号标签,-m指定说明文字 $ git tag -d v0 .0 .4 -release 删除 4  号标签 $ git push origin v0 .0 .5 -release 上传 5  号标签到远端 $ git push origin :refs/tags/v0 .0 .6 -release 删除远端 6  号标签,