首先我们会在操作系统上新建一个目录,将原始版本标记为V1,当有新版本时,复制一份改动一下标记为V2。再有新版本时复制一份改动一下标记为V3。
第一种管理方式太过繁琐,最好有一个集中化的版本控制系统集中进行管理,由服务器端帮我们进行管理版本。但是此种方式下,只要server端一挂掉版本控制就失效了。
业界内使用最广的版本控制系统,此种方式的好处是,它不仅有server端,每个软件开发人员也能在本地操作系统上维护一套软件版本,这样的话,当server端出现故障时,不会影响本地的开发。当server端维护好了的时候,server端和本地又能做同步了。
Git特点:
- 速度
- 简单的设计
- 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
- 完全分布式 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。
- 已修改表示修改了文件,但还没保存到数据库中。
- 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
- 已提交表示数据已经安全地保存在本地数据库中。
这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
获取 Git 仓库通常有两种方式:
- 将尚未进行版本控制的本地目录转换为 Git 仓库。
- 从其它服务器克隆 一个已存在的 Git 仓库。比如: git clone
Git官方教程:Git - Book
安装git:
初始化git:
注:在暂存区就是等待往版本库里做真正的提交
此时我们做提交时,提示我们需要告诉它是以什么身份提交的:
添加本人信息,只需登陆一次,并且此信息在以后每次提交时一块提交上去,这样就可以知道是谁在什么时间提交了什么信息:
再提交就成功了:
此时再查看状态显示是空的,这就表示当前工作目录、当前版本库没有任何的修改,也不需要做任何的提交。而我们已经添加到版本库的文件一直处于追踪状态,git会一直跟踪这个文件的变更。
当我们又修改了这个文件:
此时再做添加:
所有内容都在暂存区,可以做提交了:
git 状态总结
$ git status -s M README MM Rakefile A lib/git.rb M lib/simplegit.rb ?? LICENSE.txt
新添加的未跟踪文件前面有
??
标记,新添加到暂存区中的文件前面有A
标记,修改过的文件前面有M
标记。 输出中有两栏,左栏指明了暂存区的状态,右栏指明了工作区的状态。例如,上面的状态报告显示:README
文件在工作区已修改但尚未暂存,而lib/simplegit.rb
文件已修改且已暂存。Rakefile
文件已修改,暂存后又作了修改,因此该文件的修改中既有已暂存的部分,又有未暂存的部分。
若是有些文件或者目录下的文件我们不想让git追踪它的信息,可以编辑一个 .gitignore 文件,其中写上不想跟踪的文件名:
此时就不会显示状态了。
跳过使用暂存区域:
git commit -a -m 'added new benchmarks' :跳过add直接commit。注:不能操作新建的文件,只能操作修改的文件。
移除文件:
撤销删除:
提交删除:
但是即使是在版本库中删除了,我们也能后悔:
查看日志:
版本回退:
Gitee 是由开源中国出品的代码托管平台,汇聚了国内优秀的开源项目和作者,同时为开发者提供稳定、高效、安全的云端软件开发协作平台,无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发等功能。
进入gitee,注册帐号:
进入个人主页:
通过ssh方式:
提交git源后,可以看到以后它做push和抓取的时候,都是通过ssh免密的形式来抓取的:
报错说没有权限。 进去gitee设置SSH公钥:
可以看到里面是之前server2的公钥,我们现在用的server3,在server3上做免密key:
我们需要将id_rsa.pub公钥上传:
公钥已经上传:
此时再push就成功了:
此时所有文件都被提交到本地版本库当中。我们再做一个push,同步到远端服务器仓库:
可以看到我们刚刚新建的文件已经被同步过来了:
可以在gitee 的web端通过ssh密钥的方式免密克隆下来:
gitee是开源中国推出的基于 Git 的代码托管服务,企业版也是免费使用的,不同自己搭建环境,但是企业的项目代码放在公有服务器里面始终安全性能不高。所以下面引出了gitlab,我们将在gitlab中搭建自己的服务器和私有仓库。
GitLab是集中服务器上管理git存储库的一个好方法。 GitLab让您可以完全控制您的存储库或项目,并允许您自己决定是公共还是私有。
官方下载地址:GitLab最新版下载安装_GitLab中文免费版-极狐GitLab中文官方网站
国内站点:Index of /gitlab-ce/yum/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
下载rpm包之后,安装依赖性:
安装rpm包:
更改配置文件:
此处应该是 http://172.25.254.3 :
更改完配置文件后都需要重置 gitlab-ctl reconfigure:
可以看到gitlab使用的是chef puppet自动化配置工具。
- gitlab-ctl start # 启动所有 gitlab 组件
- gitlab-ctl stop # 停止所有 gitlab 组件
- gitlab-ctl restart # 重启所有 gitlab 组件
- gitlab-ctl status # 查看服务状态
- gitlab-ctl reconfigure # 重载服务
- gitlab-ctl tail # 查看日志
查看服务状态:
在网页端登陆:
登陆进gitlab:
可以设置语言:
添加公钥:
然后我们新建一个空白项目:
创建成功:
使用SSH 克隆:
此时我们就已经在本地clone下来了。
我们在gitlab中已经能看见了。
我们也可以直接在web端编辑,同步到本地。