Git 使用
一、Git概述
Git 是一个免费开源的分布式版本控制系统,管理代码的工具,具有廉价的本地库,可以储存在本地磁盘上,方便的暂存区域和多个工作分支等特性,性能由于Subversion,CVS,Perforce,和ClearCase等版本控制工具
- 版本控制: 记录文件内容变化,以便将来查阅特定版本的修订情况,记录文件修改历史记录,方便版本切换
- 集中式版本控制系统
CVS、SVN等,有一个中央服务器,保存所有文件的修订版本,开发者通过客户端连到服务器获取最新文件或提交更新,管理员可以掌控每个开发者的权限,只需维护中央服务器控制版本,每个开发者可以在一定程度上看到其他人的工作。一旦中央服务器出现单点故障,则其他开发者无法提交更新,无法协同工作
-
- 分布式版本控制工具
Git、Mercurial、Bazaar、Darc...客户端提取镜像生产本地库,每个客户端都记录的是完整的项目,服务器断网时也可以进行开发, 本地进行版本控制
- Git发展历史
- 代码托管中心--远程仓库
基于网络服务器的远程代码仓库,在局域网下--GItLab(公司搭建属于自己的远程仓库), 在互联网上---GitHub ,Gitee
本地仓库工作如图所示
远程仓库交互
- 基本概念
- 本地仓库:在本地主机上的一个代码库,可以独立存在,也可以与远程仓库关联
- 工作区:对任何文件的修订都先放在工作区,工作区不与任何仓库分支进行关联
- 暂存区:把修订的文件从工作群经add添加后与某一个仓库分支进行关联,只有进入暂存区的文件才能commit给本地仓库
- 远程仓库:在局域网或互联网的一个主机,用于存放代码库的主机或平台,如GitHub,码云
- 分支:代码存放在仓库,默认是主分支master,可以在主分支基础上创建很多子分支,如develop,test等
- 一个文件夹包含.git隐藏目录,说明此文件目录使用Git版本管理,.git存储了很多配置信息、日志信息和文件版本信息、暂存区信息等。index文件就是缓存区,也可以叫stage,用于临时保存修改文件
二、 Git使用
1. 设置用户签名
git首次安装必须设置用户签名,否则无法提交代码,签名用于区分不同操作者身份,与登录的Github或其他代码托管中心的账号没有关系
2. 初始化本地库查看状态
在需要管理的地方进行初始化 git init建立本地仓库
查看仓库状态(现在的分支以及提交的历史) git status
·目前红色的hello.txt文件存在于工作区,需要使用git add 命令提交到暂存区,git commit提交到本地仓库
3. 提交到暂存区、本地库
- git add 文件 提交文件到暂存区
- git rm --cached 文件 删除暂存区的文件
- git commit -m "版本日志信息" 提交到本地库,7位的字符码是简短版本号
- git reflog 查看版本日志信息
- git log 查看详细日志信息,有一个完整的版本号
git log --all --graph --decorate
: 图形可视化历史信息git diff <filename>
: 显示您相对于暂存区域所做的更改git diff <revision> <filename>
: 显示版本之间文件中的差异git checkout <revision>
:更新HEAD和当前分支
4. 修改文件
修改--提交到暂存区--提交本地库
5. 版本信息维护
版本查看 git reflog; git log
版本穿梭 git reset --hard 版本号,此时master 分支移到了这个版本号上,可以看到git/refs/heads/master
三、Git分支操作
- 分支管理:将工作从开发主线上分离,用于进行重大的bug修改、新功能开发等,不影响开发主线
- master分支,主分支
- test分支,测试分支,进行预发测试
- develop分支,从test创建分支,如果没有,从master创建分支,作为主要的开发分支