git 原理
git是分布式版本控制系统。顾名思义,版本控制就是所有的操作都记录在案,分布式就是每个人的本地仓库包含了代码库和历史库,不依赖中央仓库就可以记录历史。
本地仓库操作
本地文件夹中对应着工作区和版本库,版本库中包括分支和暂存区,git add 是把文件添加到暂存区中,git commit是把暂存区中的内容添加到分支上。
在使用 git commit前必须先 git add否则无效。
git init 创建厂库
使用 vi <file name> 创建文件,使用 esc 退出命令,使用:wq 保存文件并退出
git add <file name> 文件添加到厂库
git commit -m <message> 文件提交到仓库
git status 查看文件状态
git diff <file name> 查看文件具体的修改内容
git log 查看历史记录
git reset --hard HEAD^ 回退到上一个版本
git reset --hard 9cc49fa 返回到指定版本
git reflog 查看命令历史
git checkout -- <file> 从工作区撤回
git reset HEAD <file> 从暂存区撤回
git rm <file> 从版本库中删除文件
远程仓库操作
推送本地仓库到远程厂库
git remote add origin git@server-name:path/repo-name.git
git push -u origin master
克隆远程仓库到本地
git clone
分支的操作
master 分支仅仅用来发布版本,dev 分支用来开发,发布的时候把 dev 分支合并到 master 在 master 上发布新版本
git branch dev 创建 dev分支
git checkout dev 切换到 dev 分支
git checkout -b dev 创建 dev 分支并切换
git branch 查看当前分支
git merge dev 合并指定分支到当前分支
git branch -d dev 删除 dev 分支
git log --graph 查看分支合并图
git stash 储存工作现场
git stash pop 返回到工作现场
git branch -D <name> 强行删除没有合并的分支
git push origin master 推送分支到远程仓库
git pull 获取远程仓库的提交
git push origin :[远程分支名] 删除远程分支
git branch -m oldbranch newbranch 把本地分支的旧名改成新名
标签的操作
发布版本的时候可以打一个标签,这样能快速找到版本
git tag <tagname> 创建标签
git tag -a <tagname> -m "<message>" 创建标签同时设置描述信息
git tag 查看标签
git tag -d v0.1 删除本地标签
git push origin <tagname> 推送指定标签到远程
git push origin :refs/tags/<tagname> 先删除本地标签,然后在执行该命令用来删除远程标签