git学习教程:
安装后配置全局参数
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分支合并到mastergit 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" 3628164git tag -d v0.100 //删除指定标签git push origin v1.0 //推送指定标签
git push origin --tags //推送全部未推送标签git push origin :refs/tags/<tagname>//删除远程标签