一、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 仓库
- 先在github上创立一个我的项目:例如 test-demo
在本地 test-demo 我的项目中应用 git init 把其变成 Git 能够治理的仓库
git init
若要疏忽本地的文件或文件夹不被提交到github ,则须要在我的项目根目录下创立 .gitignore 文件
touch .gitignore
关上文件,编辑内容,例如:
node_modules/update.txt
则能够疏忽目录下node_modules 文件夹及updata.txt 文件.
增加文件夹下所有文件到暂存区 git add .
git add .
把文件提交到仓库 git-commit -m “”
git commit -m 'decriptions'
关联近程仓库 (第一次应用须要增加github公钥)
git remote add origin git@github.com:***/test2.1-sell.git或者git remote add origin https://github.com/***/test2.1-sell.git
获取近程库与本地同步(近程仓库不为空须要这一步)
git pull --rebase origin master
把本地内容推送到近程库 应用 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.gitcd my_testtouch README.mdgit add README.mdgit commit -m "add README"git push -u origin master
状况2)目录已存在的状况
cd existing_foldergit initgit remote add origin git@gitlab.com:newTest/test.gitgit add .git commit -m "Initial commit"git push -u origin master
已存在git仓库
existing git repositorycd existing_repogit remote rename origin old-origingit remote add origin git@gitlab.com:newTest/test.gitgit push -u origin --allgit push -u origin --tags