#提交代码会加上用户名和邮箱
git config --global user.name 名字
git config --global user.email 邮箱
git config --global color.ui true
#列出所有配置
git config --list
#创建一个repository(仓库)
git init
#可以看到一个.git目录
ls -A
#复制一个已有的项目
git clone https://git.coding.net/lackone/Demo.git
#查看状态
git status
#显示简单信息
git status -s
#添加文件到仓库
git add 文件
git add *
#提交
git commit -m '注释'
#直接提交到history中
git commit -a -m '注释'
#创建忽视文件(.gitignore)
echo '*~' > .gitignore
#查看文件的变化
git diff 文件
#查看stage中的变化
git diff --staged
#查看work与history中的区别
git diff HEAD
#查看简单信息
git diff --stat HEAD
#查看仓库中的提交历史
git log
git log --pretty=oneline
#查看分支合并图
git log --graph
#查看历史提交commit id
git log --pretty=oneline --abbrev-commit
#版本回退(HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^上上个版本,HEAD~100上100个版本)
#回退到上一个版本
git reset --hard HEAD^
git reset --hard 版本号
#查看命令历史
git reflog
#只是撤销工作区的修改时
git checkout -- 文件
#如果修改已经提交到暂存区,则分两步
1、git reset HEAD 文件
2、git checkout -- 文件
#删除文件
git rm 文件
#从stage中删除文件
git rm --cached 文件
#重命名文件
git mv 文件 新文件
#暂停工作区
git stash
#查看
git stash list
#恢得工作区,stash并不删除
git stash apply
#恢复工作区,同时把stash内容删除
git stash pop
#创建分支
git branch 分支名
git checkout 分支名
上面两条等同于如下
git checkout -b 分支名
#查看分支
git branch
#切换分支
git checkout 分支名
#合并分支
git merge 分支名
#在Fast forward模式下合并分支,分支删除后,分丢失分支信息
git merge --no-ff -m '注释' 分支名
#删除分支
git branch -d 分支名
#删除一个没有被合并过的分支,强行删除
git branch -D 分支名
#设置本地分支与远程分支的链接
git branch --set-upstream 分支名 origin/远程分支名
#查看远程库信息
git remote
#查看远程库详细信息
git remote -v
#推送分支
git push origin master
git push origin 分支名
#拉取,不会自动合并
git fetch origin master
#拉取并合并到本地
git pull origin master
#创建标签
git tag 标签名
#给commit打标签
git tag 标签名 提交id
git tag -a 标签名 -m '说明' 提交id
#查看标签
git show 标签名
#删除标签
git tag -d 标签名
#推送本地标签
git push origin 标签名
#推送本地全部未推送的标签
git push origin --tags
#删除远程标签
git push origin :refs/tags/标签名