$ git init //将该目录变为GIT管理仓库
$ git add readme.txt //将readme.txt.文件加入暂存区
$ git commit –m “create file” //提交至仓库,-m后面是本次提交的说明备注
$ git status //查看当前仓库状态,如是否有文件修改,是否有文件没有提交等等
$ git diff readme.txt //查看readme.txt修改了哪些能容
$ git diff HEAD -- readme.txt //查看readme.txt工作区和版本库里面最新版本的区别
$ git log //查看版本历史
$ git log –-petty=oneline //查看简要的版本历史信息
$ git log –-graph //查看分支合并图
$ git reset –-hard HEAD^ //回退到上一个版本,HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上个版本,上100个版本写成HEAD~100
$ git reset –-hard 345624 //版本回退到id为345624的版本
$ git reflog //查看命令历史
$ git checkout -- readme.txt //放弃工作区的修改,如果修改readme.txt后还没有add,那么readme.txt将恢复到和版本库最新版一模一样的状态,如果readme.txt提交过暂存区后又修改了,那么将恢复到暂存区的版本一模一样的状态。“--”符号很重要
$ git reset HEAD readme.txt //撤销暂存区的修改
$ git rm readme.txt //从版本库中删除readme.txt
$ git remote add origin https://github.com/username/repositoryname.git
$ git push –u origin master
//将本地库master分支推送到GitHub上名叫origin的远程库中,第一次推送,加-u
$ git push origin master //将本地master分支的修改推送到GitHub
$ git clone https://github.com/username/repositoryname.git //从GitHub远程克隆一个库
$ git checkout –b dev //创建一个叫dev的分支,并切换到dev分支上,
$ git branch dev //创建一个叫dev的分支
$ git checkout dev //切换到dev分支上
$ git branch //查看当前分支
$ git merge dev //将dev分支合并到当前分支上,如果需要将dev合并到master上,须先切换到master分支上再合并。这里是使用”fast forward”模式,在历史总看不到合并记录
$ git merge --no-ff –m “comment” dev //合并分支时不使用”fast forward”模式,由于不使用ff模式,git会生成一个新的commit,也因此需要-m参数,在历史总可以看到合并记录
$ git branch –d dev //删除dev分支
$ git branch –D dev //强行删除dev分支,当dev分支还没有合并的时候,需要使用强行删除分支
$ git branch –-set-upstream dev origin/dev //建立本地dev分支也远程的origin/dev的链接
$ git stash //将当前工作区隐藏,恢复后可以继续工作
$ git stash list //查看stash
$ git stash apply //恢复之前stash的工作区
$ git stash drop //删除stash的内容
$ git stash pop //恢复工作区,同时删除stash的内容
$ git git stash apply stash@{0} //恢复指定的stash,如stash@{0}
$ git remote //查看远程库
$ git remote –v //查看远程库详细信息
$ git pull //把最新的提交从远程拉下来
$ git tag tagname //给最新的commit打标签,标签名为tagname
$ git tag tagname commitid //通过commitid给comimit打标签
$ git tag //查看标签
$ git show tagname //通过tagname,查看标签信息
$ git tag –d tagname //删除标签
$ git push origin tagname //将标签推送到远程
$ git push origin –tags //将所有没有推送到远程的标签都推送到远程
$ git push origin:refs/tags/tagname //删除远程的标签,须先删除本地标签