git、gitlab快速入门

git

1、what

Git 是一个开源的分布式版本控制系统。同时还是内容管理系统,工作管理系统等。

git 分布式 —没有中心代码库,所有机器之间的地位同等(每台机器上都有相同的代码)

2、why

2.1 git

优点:

  • 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
  • git的分支模型十分轻量,速度快。
  • 可离线传输

缺点:

  • 每个开发人员都拥有所有的代码,不利于核心代码的保密

2.2 svn

有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的成员通过客户端连接到这台服务器,进行文件上传和更新。

优点:

  • 使用简单,比较符合我们的常规思维
  • 同步代码比较简单,只要一步操作即可。

缺点:

  • 丢失数据的风险:如果版本库的服务器磁盘发生故障等,你不能保证所有的数据已经 有人提取出来了
  • 网络中断的情况下,协作就无法进行了,因为无法连接服务器进行上传和更新。

3、相关概念

1.工作区(Working Directory): 存放git版本仓库的目录就是工作区(放源代码的地方)

2.暂存区: Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,(会将代码添加到缓存区,没有问 题之后在提交到版本库)

3.版本库(Repository): 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

4.HEAD:指向你最近一次提交后的结果。(现在是哪个版本,头就会指向这个版本)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DKlnxW1J-1608717254155)(C:\Users\fint\AppData\Roaming\Typora\typora-user-images\image-20201218152024083.png)]

4、how

4.1 安装

# yum -y install git

4.2 配置

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。

这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
# git config --global user.email "123@qq.com"
# git config --global user.name "tmli"   

# git config --list           //查看全局配置
user.email=123@qq.com
user.name=tmli
color.ui=true

4.3 创建仓库(git服务器)

通过git init命令把这个目录变成Git可以管理的仓库

第1种情况:可以改代码,还能上传到别人的机器,别人也能从你这里下载但是别人不能上传代码到你的机器上。 

第2种情况:只是为了上传代码用,别人从这台机器上下载代码也可以上传代码到这台机器上,经常用于核心代码库。

创建裸库: 适用于作为远程中心仓库使用 创建裸库才可以从别处push(传)代码过来,使用–bare参数

[root@zabbix_server git_version_repo]# git init --bare git_test1
初始化空的 Git 版本库于 /mnt/git_version_repo/git_test1/

4.4 基本操作

Git 常用的是以下 6 个命令:git clonegit pushgit addgit commitgit checkoutgit pull

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ijRp2J8W-1608717254158)(C:\Users\fint\AppData\Roaming\Typora\typora-user-images\image-20201221151858820.png)]

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:或本地仓库
  • remote repository:远程仓库
4.4.1 创建仓库命令
命令说明
git init初始化仓库
git clone远程拷贝仓库
#拷贝远程仓库到本地
git clone username@ip:仓库路径
4.4.2 提交与修改
命令说明
git add添加文件到暂存区
git status查看仓库状态,显示有变更的文件
git diff比较文件的不同,即暂存区和工作区的差异。
git commit提交暂存区到本地仓库。
git reset回退版本。
git rm删除工作区文件。
git mv移动或重命名工作区文件。
touch test1         
git add test1        //添加文件到暂存区
git  commit  -m "test1"   //-m 给提交得版本做标记

git  status          //查看仓库状态,显示有无变更的文件

git reset --hard dd66ff   //版本号可以用git log 命令查看

4.4.3 查看日志
命令说明
git log查看历史提交记录
git blame 以列表形式查看指定文件的历史修改记录
4.4.4 远程操作
命令说明
git remote远程仓库操作
git fetch从远程获取代码库
git pull下载远程代码并合并
git push上传远程代码并合并
 git push origin master  //上传到中心仓库master分支,需要用户对中心仓库有多有权限
4.4.5 分支管理
命令说明
git branch管理分支
git checkout切换分支
git merge合并分支
git branch dev #创建分支

git branch #查看分支。

git checkout dev   #切换分支

git merge dev    #把 dev 分支的工作成果合并到 master 分支上

5、部署gitlab服务

5.1 what

Gitlab 是一个提供代码托管、提交审核和问题跟踪的代码管理平台。

5.2 why

5.3 基础架构

  • Nginx:静态web服务器。
  • gitlab-shell:用于处理Git命令和修改authorized keys列表。(Ruby)
  • gitlab-workhorse: 轻量级的反向代理服务器。(go)

GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。

  • logrotate:日志文件管理工具。
  • postgresql:数据库。
  • redis:缓存数据库。
  • sidekiq:用于在后台执行队列任务(异步执行)。(Ruby)
  • unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。(Ruby Web Server,主要使用Ruby编写)

5.4 安装

1、配置源

vim /etc/yum.repos.d/gitlab_gitlab-ce.repo

    [gitlab-ce]
    name=Gitlab CE Repository
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
    gpgcheck=0
    enabled=1

yum makecache

2、安装依赖

yum install -y postfix curl policycoreutils-python openssh-server

systemctl start sshd postfix
systemctl enable sshd postfix

3、安装gitlab-ce

 yum install -y gitlab-ce

3、配置

vim /etc/gitlab/gitlab.rb
...
#外部访问url(经过编译后,自动将这个配置编译到nginx配置,nginx就无需配置了)
external_url 'http://ip'
#默认值就是8080。如果端口被占用,可将8080修改为其它(例如:9090)
unicorn['port'] = 8080
#设置地区
gitlab_rails['time_zone'] = 'Asia/Shanghai'

...

4、初始化Gitlab

gitlab-ctl reconfigure #重新加载,需要等很长时间

5、启动gitlab

git

测试访问:http://ip

密码查看 /etc/gitlab/initial_root_password

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值