赞
踩
早期为了管理和维护代码,需要有本地版本控制系统,可以简单的理解为目录,刚开始命名为v1,然后复制v1改名为v2,修改,一个版本一个版本记录下来,大量的版本难以管理,而且本地是单点,性能较差。
本地版本控制系统:
后面演化出了集中化的版本控制系统,它的版本存在server端,可以支持很多的客户端同时的使用代码仓库,但是同样存在server端down了就无法提供服务的问题。
集中化的版本控制系统:
现在主要是分布式版本控制系统,虽然也有server端,但是server端down了,不影响客户端的使用,客户端可以在本地先提交,等server端正常后,可以把server端和本地进行同步。
分布式版本控制系统:
为了更好的管理和维护代码,git诞生了。Git是一个开源的分布式版本控制系统,几乎所有开源软件用的都是分布式版本系统,其可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目。详细介绍Git必看秘籍:点击
Git特点:
Git 有三种状态:
这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
部署git有两种方式:将本地目录转化为git仓库、克隆已有仓库,如git clone
下面介绍第一种方式:
开启虚拟机lr1,首先安装git
创建工作目录demo,初始化版本库**,现在demo目录就是存放版本的版本库**;
.git目录是git跟踪管理版本库的,不要乱动。git命令必须在版本库中使用,出去就没有用了,因为信息都记录在版本库中
接着在demo目录中新建代码文件并查看其状态,-s表示简洁输出,代码文件前的??表示该文件不在版本库中。add表示将代码文件从工作区添加到暂存区,此时状态为A,表示新添加到暂存区的。HEAD指针指向当前正在操作的分支
commit表示从暂存区添加到master,默认提交整个暂存区。提交时最好添加注释,因为版本变更了什么一目了然,审计时可以快速判断;
提交时会默认创建邮箱和地址,这里也可以自己设置,如果邮箱信息没有创建成功会导致无法提交。
再次查看可以看到代码文件前无状态内容,无内容表示文件无变更
假如我们改动了代码文件README.md,查看状态,右边的M表示在工作区改动了文件,add后,查看状态,左边的M表示在暂存区改动了文件,commit提交后,就没有状态了,表示进入了master
向代码文件中追加写入内容,查看状态为右侧红色M,即在工作区进行了修改,根据提示信息可以知道在工作区的修改可以通过checkout命令来撤销;
此时查看文件内容可以看到有两行,使用checkout命令撤销工作区的修改后,再次查看文件内容,追加的内容被撤销了
编辑代码文件,新追加一行内容,查看状态显示修改在工作区,使用git add将代码文件提交至暂存区;
继续追加一行内容,查看文件状态,显示两个M。左边绿色M表示我们上一步提交至暂存区的修改,右边红色M表示刚才追加内容的修改;
再次添加文件至暂存区,查看状态可以看到只有绿色M,因为所有修改都已经被提交到了暂存区
我们也可以使用commit -a参数,等于add+commit,两步合并一步,先把工作区添加到暂存区,再把暂存区提交到master。注意commit -a提交的必须是已经进入版本库的,需要更新的文件,不能是在工作区新创建的文件
即使add添加到暂存区,也是可以撤销的。
如果不想提交这些更改,第一步可以使用reset撤销在暂存区的修改,此时查看文件状态可以看到修改处于工作区,第二步用checkout撤销在工作区的修改,此时查看文件内容
查看提交历史
用户信息被保存在/.gitconfig这一隐藏文件里
回到demo目录下(必须回到代码仓库目录中,因为git命令必须在版本库当中执行),新建隐藏文件和隐藏目录;
在隐藏目录中创建一个子文件,这时查看状态可以看到新建的隐藏文件和隐藏目录(目录中有文件,查看状态才可以看到隐藏目录),??表示并未在版本库中
在demo目录下新建并编辑.gitignore文件,像文件中写入.*表示忽略当前目录中的所有隐藏文件,此时查看状态就看不到刚才创建的隐藏文件了。
查看demo目录下的代码文件内容,再追加一行并提交更改,-a参数相当于之前的add操作,不用分两次执行了。
查看状态无内容,这表示更改已经提交且无变更
此时删除代码文件,查看状态可以看到右侧红色D,表示删除的是工作区的内容,可以撤销防止误删;
使用checkout来撤销此次删除,然后查看文件内容,可以看到文件恢复
如果使用git rm 命令删除,查看状态显示为左边绿色的D,表示删除了暂存区的内容,想恢复的话可以使用reset;
reset恢复暂存区的删除操作后,再执行checkout来恢复工作区的误删,这时可以看到文件被恢复了
如果使用git rm进行删除后,再使用commit提交了删除操作,可以使用回滚的方式恢复文件信息
查看提交历史
使用git reflog命令查看历史版本信息,然后选择需要回滚到的版本,使用 git reset --hard 版本id进行回滚。
可以使用github来新建远程仓库或者使用阿里的gitee进行远程仓库的搭建,这里我们以github为例:
首先注册github账户,并新建一个仓库
为了方便后续操作,这里要做ssh免密,生成本地密钥,并上传公钥到github
点击设置
把公钥添加到github中
导入成功
进入创建的仓库,选择ssh的连接方式
注意接下来的操作需要虚拟机可以上网
根据github的提示,首先远程连接github,一定要在仓库目录中添加远程仓库的地址
推送本地仓库内容至远程共有仓库时要指定分支main
上传成功
查看文件,发现上传成功
在本地将demo代码文件删除
通过github远程仓库克隆,可以看到demo恢复
推送文本文件
推送成功
gitlab常用命令:
命令 | 作用 |
---|---|
gitlab-ctl start | 启动所有gitlab组件 |
gitlab-ctl stop | 停止所有gitlab组件 |
gitlab-ctl restart | 重启所有gitlab组件 |
gitlab-ctl status | 查看服务状态 |
gitlab-ctl reconfigure | 重载服务 |
gitlab-ctl tail | 查看日志 |
首先创建虚拟机lr2,内存最少要给4G;
推荐使用国内镜像站点下载软件:点击
lr2先安装相关依赖
安装gitlab包
安装完成后,server2切换到/etc/gitlab/目录下,编辑gitlab.rb配置文件,将external_url参数改为自己的ip
进行重载服务(时间长)
在/etc/gitlab/initial_root_password文件中可以看到初次登陆gitlab的密码,浏览器访问172.25.36.6,进入登陆页面,复制密码,进行登录
点击右侧Preferences,修改登陆密码,修改完成后点击保存
可以设置中文
类似前面的github,这里我们也需要给gitlab一个ssh的公钥;
lr2生成ssh密钥
将lr的公钥信息复制到gitlab仓库,完成ssh密钥的添加
添加成功
新建一个名为demo的项目,设置为私有,使用自述文件初始化仓库
lr2安装git
通过ssh克隆该项目仓库至本地,查看其内容,可以发现在/root生成了一个demo目录,进入目录,可以看到拉取到的README.md
lr查看当前的远程库以及服务状态
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。