$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
-----在空目录下创建仓库-----
$ mkdir learngit 创建文件夹
$ cd learngit进入文件夹
$ pwd 显示当前目录
$ git init 初始化一个git仓库
$ git add <file>把文件添加到仓库
$ git commit -m"wrote a readme file" 把文件提交到仓库
$ git status 查看仓库当前状态
$ git diff 查看修改的内容
$ git log 显示最近到最远的提交日志
$ git log --pretty=oneline 一行显示提交日志
$ git reset --hard HEAD^ 回退到上一个版本
$ git reset --hard HEAD^^ 回退到上上一个版本
$ git reset --hard HEAD~100 回退到往上100个版本
$ git reset --hard commit_id 回退到指定版本号
$ git reflog 记录每一次命令
$ git diff HEAD --<file> 查看工作区和版本库里面最新版本的区别
$ git checkout --<file> 将文件中在工作区的修改全部撤销
$ git reset HEAD file 将暂存区的修改撤销掉,重新放回工作区
$ cat <file> 查看文件内容
$ rm <file> + $ git commit 删除文件
$ ssh-keygen -t rsa -C "youremail@example.com" 创建ssh key
$ git remote add origin git@github.com:path/repo-name.git 关联一个远程库
$ git push -u origin master 第一次推送master分支的所有内容
$ git push origin master 推送最新修改(不是第一次)
$ git clone git@github.com: path/repo-name.git 从远程库克隆
$ git checkout -b dev 创建dev分支并切换到dev分支
$ git branch dev 创建dev分支
$ git checkout dev 切换到dev分支
$ git branch 查看当前分支
$ git merge dev 把dev分支的内容合并到master分支上
$ git branch -d dev 删除dev分支
$ git log --graph --pretty=oneline --abbrev-commit 带参数的git log 可以看到分支的合并情况
$ git merge --no-ff -m"sth" dev 合并方式禁用fast forward
$ git stash 把未提交的工作内容保存起来
$ git checkout -b issue-101 创建bug分支
$ git stash list 查看stash列表
$ git stash apply 恢复工作现场
$ git stash drop 删除stash
$ git stash pop 恢复工作现场加删除stash
$ git stash apply stash@{0} 恢复指定的stash
$ git branch -D <name> 丢弃一个没有被合并过的分支,强行将其删除