//库初始化篇
$ git init //仓库初始化
///文件提交篇
$ git add study.txt //添加追踪文件 索引记录 // git add . 也可以
$ git rm --cached study.txt //移除某文件的追踪
$ git rm file //当删除文件的时候 git 会提示你 完全删除还是回复删除。使用此命令就完全删除了。
$ git commit -m "add new file" //添加描述信息,讲暂存区数据提交到工作区
///日志查询篇
$ git status //查看状态 有没有需要提交的都会显示
$ git log //提交日志
$ git log --pretty=oneline //一行显示提交日志
$ git reflog // commit reset 的历史记录
$ git log --graph --pretty=oneline --abbrev-commit //查看分支合并图 --graph
///版本回退篇
$ git reset --hard HEAD^ //版本回退 需要版本号
//HEAD^ 上一版本,HEAD^^上两个版本,HEAD~100 上100个版本,或者直接对应版本号
$ git diff //比较版本不同
$ git checkout --file //撤销操作,恢复到最近一次的git commit 处。
//当你乱改了内容,想直接丢弃可以使用该命令,如果你git add file 了 还没commit,可以先使用git reset HEAD file来恢复到add 之前,在使用checkout --file 丢弃修改。
//再或者你add 了 也commit 了 那么直接reset 回退版本就OK了。
///远程操作篇
$ git remote rm origin //删除添加的远程仓库地址
$ git remote add origin https://git.oschina.net/kingxl/Dev.git 添加远程仓库
$ git push -u origin master //推送到远程仓库
$ git pull origin master //拉取远程内容到本地
$ git clone http://git.oschina.net/kingxl/Dev.git //克隆远程代码
$ git remote //远程库信息
$ git remote -v //详细信息,列出push 和fetch 地址
$ git branch -r //列出远程分支
$ git branch -a //列出本地和远程通知
$ git push origin dev //远程新建一个分支
$ git branch --set-upstream dev origin/dev 本地 dev 与远程dev关联
$ git push origin --delete xx //删除远程的一个分支
///分支管理篇
$ git checkout -b dev //创建dev分支,并且切换到dev分支中
$ git branch dev //创建dev分支
$ git checkout dev //切换到dev分支
$ git branch -d dev //删除dev分支
$ git branch //查看分支,带星号的为当前的分支
$ git merge dev //合并dev分支到当前啊的分支上
$ git merge --no-ff -m "xxx" dev //禁用fast forward 模式的合并
$ git branch -m dev develop //修改本地分支的名字
$ git stash //储存当前未提交的内容
$ git stash list //查看储存历史记录
$ git stash apply xxx //恢复到某个记录
$ git stash drop xxx //删除某个储存
$ git stash pop //回复储存并删除
$ git branch -D xxx //强制删除某个未合并的分支
///标签管理篇
$ git tag v1.0 //打标签
$ git tag //列出标签
$ git tag v0.9 6229 //某个commit上打标签
$ git show v0.1 //列出标签信息
$ git tag -a v0.1 -m "version 0.1 released" 36222 //tag 带评论
$ git tag -d v0.1 //删除标签
$ git push origin v1.0 //推送标签到远程
$ git push origin --tags //一次性推送所有标签
$ git tag -d v0.9 //删除远程标签, 先删除本地 再删除远程
$ git push origin :refs/tags/v0.9
///命令设置篇
$ git config --global user.name "kingxl" //配置用户名
$ git config --global user.email "ios@itjoy.org" //配置邮箱
$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
$ git config --global alias.last 'log -1'
$ git config --global alias.unstage 'reset HEAD'
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"