1

一、Git 、GitLab和Github的关系

以初学者的角度了解一下Git、GitLab和Github三者之间的关系:

  • Git - 版本控制工具
  • Github - 一个网络平台,提供给用户空间存储 Git 仓库,保存用户的一些数据文档或者代码
  • GitLab - 基于Git的项目管理软件

三者都是 Git,可以说是 Git 的衍生品
起源:大牛linus Torvalds为了方便管理linux内核而开发的一个开源的版本控制软件 Git。

二、Git 的使用

2.1 简介

Git是目前世界上最先进的分布式版本控制系统。它的工作原理 / 流程如下:
在这里插入图片描述
[ Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 ]

2.2 安装

去 Git 官网下载对应系统的软件了,下载地址为 git-scm.com 或者 gitforwindows.org,按照安装向导完成安装。

具体安装可以参考 Git Windows安装教程(2.35.1.2版本)

2.3 基本使用

我们通常用 Git 将本地文件推送到 Github 仓库,或者从 GitHub 克隆项目到本地

2.3.1 本地文件推送到 Github 仓库

  1. 先在github上创建一个项目:例如 test-demo
  2. 在本地 test-demo 项目中使用 git init 把其变成 Git 可以管理的仓库

    git init
  3. 若要忽略本地的文件或文件夹不被提交到github ,则需要在项目根目录下创建 .gitignore 文件

    touch .gitignore
  4. 打开文件,编辑内容,例如:

    node_modules/update.txt

    则可以忽略目录下node_modules 文件夹及updata.txt 文件.

  5. 添加文件夹下所有文件到暂存区 git add .

    git add .
  6. 把文件提交到仓库 git-commit -m “”

    git commit -m 'decriptions'
  7. 关联远程仓库 (第一次使用需要添加github公钥)

    git remote add origin git@github.com:***/test2.1-sell.git
    或者
    git remote add origin https://github.com/***/test2.1-sell.git
  8. 获取远程库与本地同步(远程仓库不为空需要这一步)

    git pull --rebase origin master
  9. 把本地内容推送到远程库 使用 git-push

    git push -u origin master

以上内容就可以将本地文件推送到github上,并且可以自己设定不需要上传哪些文件

2.3.2 从 GitHub 克隆项目到本地

  • 配置Git,需要在本地配置用户名和邮箱,参数–global意思是全局都使用这个配置,配置命令如下
git config --global user.name "你的用户名"//配置用户名
git config --global user.email "你的email"//配置email
  • 接下来我将项目clone到本地C盘Git目录下。首先在C盘新建一个叫Git文件夹(名字自己随意取),然后进入到该目录下,最后将项目克隆到本地,命令如下
cd c: \\打开c盘
cd Git \\打开Git目录
git clone https://github.com/...... \\将项目克隆到本地

其中https的地址获取方式如下图
在这里插入图片描述
最终结果,克隆成功,并且可以在指定目录下看到项目文件夹
在这里插入图片描述
在这里插入图片描述

三、GitLab 的使用

3.1 简介

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。它的工作原理 / 流程如下:
在这里插入图片描述
GitLab的服务构成:

  • Nginx:静态web服务器。
  • gitlab-shell:用于处理Git命令和修改authorized keys列表。
  • gitlab-workhorse: 轻量级的反向代理服务器。
  • logrotate:日志文件管理工具。
  • postgresql:数据库。
  • redis:缓存数据库。
  • sidekiq:用于在后台执行队列任务(异步执行)。
  • unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。

    3.2 使用

    3.2.1 登录GitLab

    进入 GitLab 登录界面(网址:https://gitlab.com/users/sign_in
    在这里插入图片描述
    首先注册账号,注册需要登录到google,也可以使用已经注册的Github的账号来登录。下图是登录成功的界面:
    在这里插入图片描述

    3.2.2 创建工作组

    1、Menu --> Groups --> Create group 点击创建
    在这里插入图片描述
    2、输入组名 ,创建一个私有组,点击确定
    在这里插入图片描述
    3、下图是创建好的组
    在这里插入图片描述

    3.2.3 创建GitLab项目

    1、选择Menu --> Projects -->Creare new project 创建一个项目
    在这里插入图片描述
    选择Create blank project,创建全新项目
    在这里插入图片描述

2、填写项目名称,Project slug自动补充。(Project description(optional)项目描述自定义)其他默认,点击确定

  • 项目名称,项目名称可以为字母、数字、空格、下划线、中划线和英文点号组成,且必须以字母或数字开头,不能使用中文
  • 项目描述
  • 可见性(库类别)
    -- 私有库:只有被赋予权限的用户可见
    -- 内部库:登录用户可以下载
    -- 公开库:所有人可以下载
    在这里插入图片描述
    3、点击创建,如下图:
    在这里插入图片描述
    项目地址有HTTP和SSH两种方式,可发送给开发人员下载和初始化项目
    如果通过SSH方式拉取推送项目代码必须要导入SSH key
    4、导入ssh key
    在最上面有一个Add SSH key,
    在这里插入图片描述
    点击key后出现如下图片,将下面步骤生成的key文件复制到框中
    在这里插入图片描述
    可以使用已创建的key或者自己生成key,生成命令key如下:

    ssh-keygen -o -t rsa -C "你的邮箱 -b 4096

    在这里插入图片描述
    在这里插入图片描述
    打开上面保存key的目录(我的是 C:\users\wang3/.ssh/id_rsa.pub)中的内容全部复制到上面步骤的框中点击add key,会出现如下截图:
    在这里插入图片描述
    5、添加组成员
    找到自己创建的group,在左边点击Group information,再点击Members,在Add new members to group名字中添加进需要的用户
    在这里插入图片描述
    在这里插入图片描述
    添加完用户后可以在下面看到现在已经添加进来的用户
    在这里插入图片描述
    6、上传项目
    所有步骤都需要执行的命令

git config --global user.name "用户名"
git config --global user.email "邮箱"

情况1)创建一个新的git仓库 步骤如下:

git clone git@gitlab.com:newTest/test.git
cd my_test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

情况2)目录已存在的情况

cd existing_folder
git init
git remote add origin git@gitlab.com:newTest/test.git
git add .
git commit -m "Initial commit"
git push -u origin master

已存在git仓库

existing git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin git@gitlab.com:newTest/test.git
git push -u origin --all
git push -u origin --tags

3.3 自建 GitLab 和官方 GitLab 的差异

我们想深入的学一些有关GitLab的相关知识时,网上搜索出的全都是教怎么安装GitLab的,大多数人就会有个疑问,Gitlab不是可以直接官网登录么,这种搭建私有GitLab服务器和官方的比有什么区别或者说优点么?

私人搭建的 GitLab 至少有几点好处:

  1. 相对安全,必竟别人看不到你的代码;
  2. 速度快,如果布署在局域网会更快;
  3. 可以和私有的其他系统集成,如 k8s,jenkins 等;
  4. 容量不受限制,可以自主管理团队成员等等

如果只是一个个人开发者,不想操心维护的事,云上的系统也不错,但对团队开发来说,私有布署是更好的选择。


土豆
17 声望5 粉丝