一.GitLab简介

GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

二.GitLab和Github的联系和区别

Github - 一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等。
GitLab
是一个用于仓库管理系统的开源项目。
二者都是git的衍生产品

三.gitlab安装及使用

接下来我们通过windows的unbuntu虚拟机搭建一个gitlib服务端代码管理端

怎么利用hyper-v安装ubuntu的linux服务器,可以自己百度,非常简单,10-20分钟就可以搞定。

1.准备工作

windows10 、hyper-v、ubuntu的linux虚拟机

2.转到以下地址,安装gitlab

https://about.gitlab.com/downloads/#ubuntu1404

只需要简单的四部,就可以安装好gitlab。如下图:

在完成后,直接在浏览器中,输入http://127.0.0.1,就可以直接访问gitlab的web端管理地址,如下图:

然后直接输入输入图一中,第四步的账号密码,就可以直接访问了。如下图:

到此,gitlab服务就搭建完成,下一篇文章,我们会讲解,安装过程中出现的问题,如安装后,输入http://127.0.0.1访问不到gitlab的web管理页面,以及怎样配置自定义的gitlab域名服务。

怎么使用呢,后期再说,其实这个和github代码管理有很多相似的地方

四.GitLab 的配置与使用

1.创建新项目(web)

1-1.登录gitlab网址成功后,点击右侧导航条上的 “+” 就可以进入创建项目的页面

1-2.在创建工程的页面,按照要求填写项目的名称和可见性等信息。

Project path:项目的路径,一般可以认为是项目的名称

Import prject from:从哪导入项目,提供Github/Bitbucket等几个选项

Description(项目的描述):可选项,对项目的简单描述

Visibility Level(项目可见级别):提供Private(私有的,只有你自己或者组内的成员能访问)/Internal(所有登录的用户)/Public(公开的,所有人都可以访问)三种选项。

2.添加和配置SSH公钥:

2-1.SSH(Secure Shell)是一种安全协议,在你的电脑与GitLab服务器进行通信时,我们使用SSH密钥(SSH Keys)认证的方式来保证通信安全。

2-2.创建 SSH密钥,并将密钥中的公钥添加到GitLab,以便我们通过SSH协议来访问Git仓库。

SSH 密钥的创建需要在终端(命令行)环境下进行,我们首先进入命令行环境。通常在OS X和Linux平台下我们使用终端工具(Terminal),在Windows平台中,可以使用Git Bash工具,git客户端安装目录下git-bash.exe文件

A:进入SSH目录:cd ~/.ssh

(1)如果还没有 ~/.ssh 目录,可以手工创建一个(mkdir ~/.ssh),之后再通过cd
~/.ssh进入SSH目录

(2)可以通过ls -l命令查看SSH目录下的文件,来确认你是否已经生成过SSH密钥;如果SSH目录为空,我们开始第二步B,生成 SSH 密钥;如果存在id_rsa.pub这个文件,说明你之前生成过SSH密钥,如何添加多个sshkey也不难,一般很少用,这里不介绍了。

B:生成SSH密钥

我们通过下面的命令生成密钥,请将命令中的YOUR_EMAIL@YOUREMAIL.COM替换为你注册gitlab时用的Email地址。

ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM"

在SSH生成过程中会出现以下信息,按屏幕的提示操作即可:

Note:Enter passphrase (empty for no passphrase) :时,可以直接按两次回车键输入一个空的
passphrase;也可以选择输入一个 passphrase 口令,如果此时你输入了一个passphrase,请牢记,之后每次提交时都需要输入这个口令来确认。

实践过程中Android studio 如果有密码无法同步,建议不要密码。

公钥默认地址:C:\Users\用户\.ssh

连接git服务器生成可信任文件known_hosts,否则会报:Push failed: Failed with error: fatal: Could not read from remote repository.

Per Android Studio help under SSH Executable:

  • Built-in: select this option to use the implementation provided by IntelliJ IDEA.
  • Native: select this option to use native implementation.

修改SSH Executable 为 Native

3.获取SSH公钥信息:

SSH密钥生成结束后,根据提示信息找到SSH目录,会看到私钥id_rsa和公钥id_rsa.pub这两个文件,不要把私钥文件id_rsa的信息透露给任何人。我们可以通过cat命令或文本编辑器来查看id_rsa.pub公钥信息。

(1)通过编辑器。使用你熟悉的文本编辑器,比如 记事本、Sublime Text等软件打开id_rsa.pub,复制里面的所有内容以备下一步使用。

(2)通过cat命令。在命令行中敲入cat id_rsa.pub,回车执行后命令行界面中会显示id_rsa.pub文件里的内容,复制后在下一步使用。

(3)通过直接使用命令将id_rsa.pub文件里的内容复制到剪切板中

Windows: clip
< ~/.ssh/id_rsa.pub

Mac: pbcopy
< ~/.ssh/id_rsa.pub

GNU/Linux (requires xclip): xclip
-sel clip < ~/.ssh/id_rsa.pub

4.添加SSH公钥到gitlab:

4-1.打开gitlab的Profile配置页面,选择SSH Keys,如图:

4-2.添加SSH公钥。填写Title和Key,其中Title是Key的描述信息,Key是上面复制的SSH公钥的内容,直接粘贴到输入框中保存即可。

5.导入项目:

5-1.设置下git的用户名和邮箱

在提交代码前,还需要设置下git的用户名和邮箱(最好用英文,不要出现中文),这样提交记录才会在gitlab上显示带有你名字的记录。
在命令行窗口输入(windows需要安装打开Git Bash工具才行):
git config --global user.name"your_name"

git config --global user.email "your_email"

5-2.导新项目到gitlab上

如果项目存在,需要导入到gitlab,可以通过命令行直接将项目导入上去。

[plain] view
plain
 copy

  1. cd "本地存在项目的路径"
  2. git init
  3. git remote add origin git@gitlab.com:USERNAME/PROJECTNAME.git
  4. git add .
  5. git commit -m 'first git demo'
  6. git push -u origin master

(注:将USERNAME和PROJECTNAME替换成用户名和项目的名称)

5-3.导入项目到本地

git clone"你的项目地址"

Note:如何在gitlab上找到你的项目地址位置,请看下图:

在Windows下搭建Gitlab服务器的更多相关文章

  1. windows 下搭建git服务器,及问题处理。

    最近要做一个源码管理服务器,权衡了一下还是git最适合,搭建服务器前看了网上一些windows下搭建git服务器的帖子,感觉还比较简单,没有太多需要配置的地方,于是开始动手. 我选择的是 gitfor ...

  2. windows下搭建nginx-rtmp服务器

    windows下搭建nginx-rtmp服务器 windows下搭建nginx-rtmp服务器 准备工作 安装MinGW 安装Mercurial 安装strawberryperl 安装nasm 下载n ...

  3. Windows下搭建Git 服务器: BONOBO GIT SERVER + TortoiseGit

    本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...

  4. Windows下搭建FTP服务器

    一.什么是ftp? FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(A ...

  5. 转 【MQTT】在Windows下搭建MQTT服务器

    MQTT简介 MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放.简单.轻量.易于实现.这些特点使它适用于受限环境.该协议的特点有: 使用发布/订阅消息模式,提供 ...

  6. [源码管理] Windows下搭建SVN服务器

    前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效 ...

  7. Windows下搭建Redis服务器

    Redis服务器是当下比较流行的缓存服务器,Redis通常被人拿来和Memcached进行对比.在我看来,应当是各具优势吧,虽然应用场景基本类似,但总会根据项目的不同来进行不通的选用. 我们今天主要讲 ...

  8. Windows 下搭建LDAP服务器

    五一闲来没事,加上项目正在进行UAT.抽空研究了一下LDAP相关知识.随手做一个记录. 为了方便阅读还是先介绍一下什么是LDAP? 前言.Lightweight Directory Access Pr ...

  9. windows 下搭建 git 服务器 gogs

    本文基于 windows7 64位 搭建 gogs gogs 官方文档地址:https://gogs.io/docs软件下载地址:https://dl.gogs.io/ 环境要求 数据库(选择以下一项 ...

随机推荐

  1. CSDN博客投票活动开始了

    自己坚持写博客,一方面是为了将自己对知识点的理解做一个总结,另一方面也是因为自己看到了很多无私奉献分享自己知识的小伙伴们,因此自己也想像他们那样尽自己微薄之力把自己对某一知识点的理解分享给大家,或许算 ...

  2. 简单将sublime text 配置为lua或c#一键编译运行环境

    lua { "cmd": "luajit $file", "selector":"source.lua" } C { & ...

  3. iOS开源加密相册Agony的实现(六)

    简介 虽然目前市面上有一些不错的加密相册App,但不是内置广告,就是对上传的张数有所限制.本文介绍了一个加密相册的制作过程,该加密相册将包括多密码(输入不同的密码即可访问不同的空间,可掩人耳目).Wi ...

  4. Java程序员的Golang入门指南(下)

    Java程序员的Golang入门指南(下) 4.高级特性 上面介绍的只是Golang的基本语法和特性,尽管像控制语句的条件不用圆括号.函数多返回值.switch-case默认break.函数闭包.集合 ...

  5. DB 查询分析器7.01 新增的保存执行结果到多个文件功能

        1      引言   中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员)推出的个人作品----万能数据库查询分析器,中文版本DB 查询分析器.英文版本< ...

  6. J2EE中MVC的各层的设计原则及其编写注意事项

    总结了下J2EE的MVC模式开发原则,很多细节处理好了是很有利于开发与维护的. 下面就从各层说起. 视图层 主要是客户端的显示,主要是JSP和HTML,随着Web的不断发展,许多基于Javascrip ...

  7. Spark调度模式-FIFO和FAIR

    Spark中的调度模式主要有两种:FIFO和FAIR.默认情况下Spark的调度模式是FIFO(先进先出),谁先提交谁先执行,后面的任务需要等待前面的任务执行.而FAIR(公平调度)模式支持在调度池中 ...

  8. Android动态加载入坑指南

    曾几何时,国内各大公司掀起了一股研究Android动态加载的技术,两年多过去了,动态加载技术俨然成了Android开发中必须掌握的技术.那么动态加载技术是什么呢,这里谈谈我的个人看法,如有雷同,纯属偶 ...

  9. Android之自定义AlertDialog和PopupWindow实现(仿微信Dialog)

    我们知道,在很多时候,我们都不用Android内置的一些控件,而是自己自定义一些自己想要的控件,这样显得界面更美观. 今天主要是讲自定义AlertDialog和popupWindow的使用,在很多需求 ...

  10. DBCP连接池TestOnBorrow的坑

    生产环境连接池TestOnBorrow设置为false,导致有时获取的连接不可用.分析如下: TestOnBorrow=false时,由于不检测池里连接的可用性,于是假如连接池中的连接被数据库关闭了, ...