【体系-微服务架构】18-GitLab 代码托管

01.Git 简介

SVN简介:SVN是一个集代码管理、代码整合(复制、丢失、迭代)工具。它将代码备份在服务器上,从统一的服务器中拉取代码

GIt简介:Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,是由 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件,Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持
在这里插入图片描述


02.Git 安装

软件:需要分别安装GitTortoiseGit以及其中文包(Git图形化工具)
注意:TortoiseGit和TortoiseSVN只支持 Windows,如果是MAC电脑则可考虑使用source tree(可用于MAC和Windows)
在这里插入图片描述在这里插入图片描述


03.Git 工作流程

在这里插入图片描述

  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

04.Git 基本操作

  • git init: 用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。
  • git clone [url]:使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
  • git add:可将该文件添加到缓存
  • git status (-s):以查看在你上次提交之后是否有修改
  • git diff:执行 git diff 来查看执行 git status 的结果的详细信息。git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。
    • 尚未缓存的改动:git diff
    • 查看已缓存的改动: git diff --cached
    • 查看已缓存的与未缓存的所有改动:git diff HEAD
    • 显示摘要而非整个 diff:git diff --stat
  • git commit:使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。git config --global user.name 'yourname' git config --global user.email youremail,将文件写入缓存区并提供提交注释git commit -m 'update message'
  • git reset HEAD:用于取消已缓存的内容。git reset HEAD -- <filename>
  • git pull:git pull命令用于从另一个存储库或本地分支获取并集成(整合)。git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并,它的完整格式稍稍有点复杂。git pull <远程主机名> <远程分支名>:<本地分支名>,将远程存储库中的更改合并到当前分支中。在默认模式下,git pull是git fetch后跟git merge FETCH_HEAD的缩写。更准确地说,git pull使用给定的参数运行git fetch,并调用git merge将检索到的分支头合并到当前分支中。
  • git push:git push命令用于将本地分支的更新,推送到远程主机。它的格式与git pull命令相似。git push <远程主机名> <本地分支名>:<远程分支名>
  • git tag:如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。比如说,我们想为我们的 商城 项目发布一个"1.0.0"版本。 我们可以用 git tag -a v1.0.0 命令给最新一次提交打上(HEAD) “v1.0.0” 的标签。-a 选项意为"创建一个带注解的标签"。 不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。 我推荐一直创建带注解的标签。git tag -a v1.0.0,如果我们要查看所有标签可以使用以下命令:git tag

05.GitLab 安装

第三方代码托管平台GitHub码云马市

GitLab概述:GitLab 是利用 Ruby on Rails 一个开源的版本管理系统(手动安装非常麻烦),实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。它拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序 (Wall) 进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。(在VM虚拟机中内存最起码2G,并且其运行在5200转的磁盘上也非常卡,所以最好将其放在固态硬盘C盘上运行)

#拉取gitlab镜像
root@demo:~# docker pull twang2218/gitlab-ce-zh
#创建
root@demo:~# cd /usr/local
root@demo:/usr/local# mkdir docker
root@demo:/usr/local# cd docker
root@demo:/usr/local/docker# mkdir gitlab
root@demo:/usr/local/docker# cd gitlab
root@demo:/usr/local/docker/gitlab# vi docker-compose.yml
version: '3'
services:
    web:
      image: 'twang2218/gitlab-ce-zh'
      restart: always
      hostname: '192.168.197.134'
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://192.168.197.134'
          gitlab_rails['gitlab_shell_ssh_port'] = 2222
          unicorn['port'] = 8888
          nginx['listen_port'] = 80
      ports:
        - '80:80'
        - '8443:443'
        - '2222:22'
      volumes:
        - /usr/local/docker/gitlab/config:/etc/gitlab
        - /usr/local/docker/gitlab/data:/var/opt/gitlab
        - /usr/local/docker/gitlab/logs:/var/log/gitlab
root@demo:/usr/local/docker/gitlab# docker-compose up

设置管理员密码之后,才会通过root用户登录进入GitLab
在这里插入图片描述
在这里插入图片描述
注意: 如果服务器配置较低,启动运行可能需要较长时间,请耐心等待


06.GitLab 实操

基本设置:第一次使用时需要做一些初始化设置,点击“管理区域”–>“设置”
在这里插入图片描述
关闭头像功能,由于 Gravatar 头像为网络头像,在网络情况不理想时可能导致访问时卡顿
在这里插入图片描述
由于是内部代码托管服务器,可以直接关闭注册功能,由管理员统一创建用户即可
在这里插入图片描述
账户管理:使用时请不要直接通过 root 用户操作,需要先创建用户,然后通过创建的用户操作,如果你是管理员还需要为其他开发人员分配账户
在这里插入图片描述
同时你可以将自己设置为管理员
在这里插入图片描述
由于我们创建时并没有配置邮箱,所以还需要重新编辑用户信息并手动设置密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:创建完账户,第一次登录时还会提示你修改登录密码

创建项目:点击 + 号 --> 新建项目
在这里插入图片描述
输入项目名称及描述信息,设置可见等级为私有,这样别人就看不见你的项目
在这里插入图片描述
我们选择通过增加一个 README 的方式来初始化项目
在这里插入图片描述
直接提交修改即可
在这里插入图片描述
SSH免密:使用 SSH 的方式拉取和推送项目
在这里插入图片描述
输入命令:ssh-keygen -t rsa -C "your_email@example.com"(注册在GItlab上地址)生成密钥,秘钥位置在:C:\Users\你的用户名.ssh 目录下,找到 id_rsa.pub 并使用编辑器打开,如:
在这里插入图片描述
然后在Gitlab点击头像,Settings选项中点击左边菜单栏SSH Keys进行公钥的存放(公钥存放在服务器上,私钥存放在本地)
在这里插入图片描述
成功增加密钥后的效果如下
在这里插入图片描述
接着在本地用SSH协议进行项目的克隆,由于安装TortoiseGit时候进行默认配置,有时候可能需要使用Git原生的SSH服务:(在可能需要克隆的目录下右键TortoiseGit->设置)
在这里插入图片描述
最后,就可以通过SSH进行代码的免密拉取与推送

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值