git学习教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/
安装后配置全局参数
git config --global user.name "name"
git config --global user.email "email@example.com"
查看全局配置
git config -l
创建版本库
mkdir gitRepo //建立仓库
git init //初始化仓库
添加和提交
git add readme.txt
git commit -m "add a readme.txt" //-m 提交注释
git status //查看当前仓库状态
git diff //查看具体修改内容
git log //查看提交日志,由近到远
git log --pretty=oneline //简化显示
版本回退
git reset --hard head^
git reset --hard 3628164 //根据版本号回退
head^ 表示上一个版本
head^^ 表示上上个版本
head~100 表示往上一百个版本
回退后的再恢复回来,只需找到“未来版本”的版本号即可
git reflog //查看命令历史
撤销工作区修改
git checkout -- readme.txt
撤销暂存区
git reset head readme.txt
创建ssh key
ssh-keygen -t rsa -C "email@example.com"
生成:id_rsa(秘钥),id_rsa.pub(公钥)
然后去个人账号,settings,add ssh key;
在本地添加远程库(相关联)
git remote add origin git@github.com:peak-c/demo.git
把本地库所有内容推送到远程库
git push -u origin master
由于远程库是空的,我们第一次推送master分支时,加上了-u参数, Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push origin master
克隆远程库到本地
git clone git@github.com:peak-c/demo.git
创建分支
git checkout -b dev //-b表示创建后切换
git branch //查看分支
git merge dev //将dev分支合并到master
git branch -d dev //删除dev分支
git log --graph //可以看到分支合并图。
在master分支下,合并dev到master
git merge --no-ff -m "merge with no-ff" dev
保存现场与恢复
git stash //保存工作现场
git stash list //查看保存的工作现场
恢复现场:
git stash apply ;然后用git stash drop删除;
git stash pop ;恢复的同时把stash内容也删了:
标签
git tag v1.0 //打标签
git tag v0.9 6224937 //给指定提交打标签
git tag //查看标签
git show <tagname> //查看标签信息
创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -a v0.1 -m "version 0.1 released" 3628164
git tag -d v0.100 //删除指定标签
git push origin v1.0 //推送指定标签
git push origin --tags //推送全部未推送标签
git push origin :refs/tags/<tagname>//删除远程标签