git版本控制
版本控制
版本控制简介
- version control system
- revision control system(修订控制系统)
- 开发工具,但不限于源码文件
- 记录文件的每次变更
- 随时可以回到历史状态
- 文件及元数据的变更(修改人\修改理由\具体修改内容\时间戳)
- 配置文件是除数据之外第二大资产
- 团队协作
- centralized version control systems (CVCS)
- 集中存储修改 , 颗粒控制, 但是单点故障隐患
- CVS / Subversion
- distributed version control systems (DVCS)
- 分布式存储的完整拷贝
- git / mercurial / bazaar
- 每个人维护本地库, 完成后上传到服务器
- 指针指向当前最新版本
- 随着回滚还原历史版本
Git
- 最初由李纳斯开发 (Linux内核创始者)
- Git作为开发工具而生
- 适合大型项目的版本管理(源码版本管理)
- GIt库保存所有程序员的团队成果
- Git默认使用openssh
- 服务器上git用户需要能够修改目录(库)
- 一个库就是一个文件夹 (库配置信息 .git目录)
- 无需独立的专职服务器, 满足存储空间需求可共用
git系统库安装
1 | sudo apt install git |
git简单使用
git安装
使用PPA库安装
1
2
3
4sudo add-apt-repository ppa:git/core/ppa
sudo apt update
sudo apt install git
git version # 版本比ubuntu官方库新
使用:
1
2
3
4
5
6
7git config --global user.name "Your Name"
git config --global user.email "Your email"
git config --list # 查看配置的信息
git help -a -g # 查看git所有命令
git help everyday # man giteveryday
git客户端安装
与服务端安装一样
连接服务器:
1 | git clone cwz@172.16.216.129:/git/web # 获取服务器的库 |
git常用命令
git status
1 | cwz@U ~/git/web master git status |
git add . 或者git add filename
1 | 将当前文件加入到git管理追踪的状态下, 当前文件的变更都会被git记录 |
git commit -a -m "描述"
提交变更 本地库变更
1 | git commit 提交文件, -a 表示将所有文件都提交, -m 描述信息 |
每次文件变更信息,都要执行git commit -a -m "描述"
, 才会保存版本更新记录
可以管理本地文件的修改
举个例子: apache配置文件版本管理
1 | cp -rp /etc/apache2 /etc/apache2.bak # 备份apache2 |
本地同步到服务器
1 | git push origin master |
从服务器更新
1 | git pull |
撤销文件的变更
1 | git checkout file |
安装tig查看文件变更
1 | sudo apt install tig |
搭建gitlab服务器
gitlab
命令行的git灵活强大, 但人们还是偏爱图形化
gitlab是开源的git库 web界面 (包含团队协作工具 gitlab mattermost )
基于Ruby 语言开发的web应用程序
所有组件全部打包集成 postgresql redis nginx logrotate sidekiq unicorn
要支持MySQL数据库, 社区版需要手动安装
安装使用:
1 | 社区版: https://packages.gitlab.com/gitlab/gitlab-ce |
配置:
sudo gitlab-ctl reconfigure
一些命令
状态
1
sudo gitlab-ctl status
配置
1
2
3
4
5
6
7
8
9/etc/gitlab/gitlab.rb # 配置文件
# 配置文件参数:
external_url # 指定访问域名https://lab.com
letsencrypt集成 # 生成证书
database # 指定外部postgresql数据库
email # 设置出站邮件服务器
sudo gliab-ctl reconfigure # 每次配置修改都需要重新运行该命令
gitlab-clt show-config # 显示已经启用的配置浏览器访问
- 设置初始化root账号密码
常用命令
1 | sudo gitlab-ctl start # 启动gitlab |
创建用户 创建库(project)
默认用户可创建10000个库(project)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 伊甸园!