【Git版本控制】以及搭建gitlab服务

一、Git介绍

Git是一个免费、开源的分布式版本控制系统,它因其速度快、灵活性高和强大的分支管理能力而广受欢迎。分布式版本控制系统中,每个开发者都拥有完整的代码仓库,包含完整的历史记录。开发者可以在本地进行版本控制操作,不需要始终依赖中央服务器。

二、Git安装与全局配置

git的下载:https://git-scm.com/download
我用的redhat系统:yum install git -y

1、git的全局配置:

[root@redhat GitStudy]# git config --global user.name "xiaogang"     #配置git使用用户
[root@redhat GitStudy]# git config --global user.email "123@qq.com"      #配置git使用邮箱
[root@redhat GitStudy]# git config --global color.ui true   #配置语法高亮
[root@redhat GitStudy]# git config --list     #列出刚刚配置的内容
user.name=xiaogang
user.email=123@qq.com
color.ui=true
core.repositoryform

2、为常用的指令配置别名:

1、在用户目录创建.bashrc文件
输入的内容是:

#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'

3、Git初始化本地代码仓库

[root@redhat ~]# mkdir GitStudy      #创建一个空目录
[root@redhat ~]# cd GitStudy/
[root@redhat GitStudy]# git init    #初始化git
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:

4、Git的基础命令

Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。
在这里插入图片描述

常用命令:

 - git status【文件名或者通配符】 #查看修改的状态
 - git add                    #工作区提交项目到暂存区
 - git commit 【-m 注释信息】   #暂存区提交项目到本地仓库
 - git log					  #显示提交到仓库的记录
 - git push                   #本地仓库提交项目到远程仓库
 - git rm                     #从Git的暂存区域移除文件、在工作区中将被跟踪文件删除
 - git reset HEAD             #取消已经暂存的文件,将其转换回未暂存的状态
 - git reset --hard 3de15d4   #将当前分支的HEAD指向commit哈希值为3de15d4的提交,并且重置Staging Area和工作目录,将它们恢复到该提交时的状态,恢复指定版本  **
 - git reflog				  #查看删除的提交记录
 - git clone                  #远程仓库拉取到本地仓库
 - git pull                   #远程仓库中的代码更新到本地

git log命令详解:
作用:查看提交记录
命令形式: git log [option]
options:

  • –all显示所有分支
  • –pretty=oneline将提交信息显示为一行
  • –abbrev-commit使得输出的commitld更简短Ⅰ–graph 以图的形式显示
  • –graph 以图的形式显示

alias git-log=‘git log --pretty=oneline --all --graph --abbrev-commit’ 上面的配置就是这个意思

在某些情况下,有一个文件我不想让他被git管理,输入文件名的形式有很麻烦,这个时候可以通过在这个仓库创建一个 .gitignore 文件,并在里面写上你不需要被管理的文件或者通配符。

三、分支

几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。

 - git branch				  #查看本地分支
 - git branch 分支名           #创建本地分支
 - git checkout	 分支名		  #切换分支   加-b参数,为创建并切换
 - git merge 分支名称		  #合并分支
 - git branch -d b1			  #删除分支时,需要做各种检查
 - git branch -D b1			  #不做任何检查,强制删除

冲突问题是在两个人修改了同一文件,合并到一条线时自己决定咋修改。

四、Git远程仓库

可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab(企业常用,需要自己搭建)等。
1、gitHub (地址: https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名github。
2、码云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快。
3、GitLab(地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业、学校等内部网络搭建git私服。

在这里以码云为例:
1、注册码云
2、创建仓库
在这里插入图片描述
3、配置ssh公钥
[root@redhat ~]# ssh-keygen -t rsa
然后不断回车
获取公钥:[root@redhat ~]# cat ~/.ssh/id_rsa.pub
在这里插入图片描述
4、验证是否配置成功:
[root@redhat ~]# ssh -T git@gitee.com (好像不要-T也行)

1、操作远程仓库

命令: git remote add<远端名称><仓库路径>
。远端名称,默认是origin,取决于远端服务器设置
。仓库路径,从远端服务器获取此URL
。例如: [root@redhat GitStudy]# git remote add origin git@gitee.com:xiao-/git_test.git 【去自己的仓库里获取】

git remote ----->查看远程仓库

推送到远程仓库:
命令: git push [–set-upstream][远端名称[本地分支名][:远端分支名]]
例如:git push origin master

–set-upstream推送到远端的同时并且建立起和远端分支的关联关系。–》git push --set-upstream origin master

如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
git push将master分支推送到已关联的远端分支。

[root@redhat GitStudy]# git push --set-upstream origin master   由于在本地和远程仓库建立了分支关系,后面只需要git push就行

查看本地分支与远程分支之间的关系 ----》 git branch -vv

2、从远程仓库克隆

如果已经有一个远端仓库,我们可以直接clone到本地。
命令: git clone<仓库路径>[本地目录]
-----------》本地目录可以省略,会自动生成一个目录

3、从远程仓库中抓取和拉取

远程分支和本地的分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。

  • 抓取命令: git fetch [remote name] [branch name](抓取指令就是将仓库里的更新都抓取到本地,不会进行合并。如果不指定远端名称和分支名,则抓取所有分支)
  • 拉取命令: git pull [remote name] [branch name](拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge。如果不指定远端名称和分支名,则抓取所有并更新当前分支)

五、Gitlab sever部署

环境:redhat:9

搭建gitlab的时候内存尽量需要大一点,内存最好4个G以上
1、安装Gitlab依赖包

yum install -y curl policycoreutils-python-utils openssh-server perl

可选)下一步,安装 Postfix 以发送电子邮件通知

yum install postfix
systemctl start postfix

2、添加镜像源
国内使用清华源镜像:

[root@localhost ~]# vim /etc/yum.repos.d/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
[root@localhost ~]# yum makecache

3、安装Gitlab

[root@redhat ~]# yum install gitlab-ce
安装历史版本:
[root@redhat ~]# yum install -y gitlab-ce-{VERSION}  

4、gitlab的配置
[root@redhat ~]# vim /etc/gitlab/gitlab.rb
external_url ‘http://gitlab.example.com/’ -----》修改自己的主机
external_url ‘http://192.168.85.128’
#用户访问所使用的URL,域名或者IP地址

5、初始化gitlab

[root@redhat ~]# gitlab-ctl reconfigure
第一次使用配置时间较长

6、启动gitlab服务

[root@redhat ~]# gitlab-ctl start
[root@redhat ~]# lsof -i:80  ---》可查看80端口有无被占用,安装
lsof

如果在这个期间出现了“Error executing action run on resource 'execute[semodule -i /opt/gitlab/”这种selinux的错误。
解决方法是
cd /opt/gitlab/embedded/cookbooks/gitlab/recipes找到selinux.rb文件吧关于gtlab的一些文件注释掉。
详细去看:https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/501
7、Gitlab的额外配置
一、gitlab设置https的方式:
如果想要以上的https方式正常生效使用,则需要把letsencrypt自动生成证书的配置打开,这样在执行重新让配置生效命令(gitlab-ctl reconfigure)的时候会自动给域名生成免费的证书并自动在gitlab自带的nginx中加上相关的跳转配置,都是全自动的,非常方便。

[root@redhat ~]# vim /etc/gitlab/gitlab.rb 
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['30423@qq.com']  #添加联系人的邮件地址

二、Gitlab添加smtp邮件功能
前提的安装yum install postfix

gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '309121@qq.com'   #自己的qq邮箱
gitlab_rails['gitlab_email_display_name'] = 'gitlab'   #发送的名字
gitlab_rails['gitlab_email_reply_to'] = '3090423121@qq.com'
gitlab_rails['gitlab_email_subject_suffix'] = '[gitlab]'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "3090423121@qq.com"
gitlab_rails['smtp_password'] = "smtp password" -----》#这是qq邮箱的授权码
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

邮箱的授权码获取:
在这里插入图片描述

期间出现遇到的问题:

在这里我出现了第一个问题:
There was an error running gitlab-ctl reconfigure:  gitlab_rails['smtp_tls'] and gitlab_rails['smtp_enable_starttls_auto'] are mutually exclusive. Set one of them to false. SMTP providers usually use port 465 for TLS and port 587 for STARTTLS.

解决方法:
Gitlab 15.10 版本后smtp_enable_starttls_auto 设置为 false 后,重启 gitlab 服务.

这里我出现了第二个问题:
There was an error running gitlab-ctl reconfigure:  letsencrypt_certificate[192.168.85.128] (letsencrypt::http_authorization line 6) had an error: Acme::Client::Error::RejectedIdentifier: acme_certificate[staging] (letsencrypt::http_authorization line 43) had an error: Acme::Client::Error::RejectedIdentifier: Error creating new order :: Cannot issue for "192.168.85.128": The ACME server can not issue a certificate for an IP address

解决方法:
letsencrypt[‘enable’] = false 出现这个问题是我配的https的传输方式,所以改成false
https的加密传输弄好:
在这里插入图片描述
发送邮箱测试:

[root@redhat ~]# gitlab-rails console
irb(main):004:0> Notify.test_email('3091@qq.com','Message Subject','Hello, kazihuo !').deliver_now

邮箱测试成功:
在这里插入图片描述

六、Gitlab使用

在浏览器中输入http://192.168.60.119/,然后change password:,并使用root用户登录即可(后续动作根据提示操作)。
1、Gitlab命令行修改密码(重置管理员的密码)

GitLab 版本不同,命令会有所不同(网上说的而基本都是gitlab-rails console production ),推荐大家直接上 GitLab 官网去找对应版本的命令.
[root@redhat ~]# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux]
 GitLab:       16.8.0 (16896fceb7a) FOSS
 GitLab Shell: 14.32.0
 PostgreSQL:   14.9
------------------------------------------------------------[ booted in 75.66s ]
Loading production environment (Rails 7.0.8)
irb(main):001:0> user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):002:0> user.password = '177230637gang'
=> "17723063738gang"
irb(main):003:0> user.password_confirmation = '177230637gang'  #确认密码
=> "17723063738gang"
irb(main):004:0> user.save!
=> true
(密码必须是8位以上,并且有字母数字组合)
账户:root
密码:自己设置的

gitlab-ctl tail ----》 查看日志

在这里插入图片描述
搭建成功!
docker搭建gitlab :https://blog.csdn.net/BThinker/article/details/124097795,可以看看别人的博客

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Windows 10上搭建GitLab服务器,您需要按照以下步骤进行操作: 1. 安装GitLab的依赖项:在Windows 10上安装GitLab需要安装Ruby、Git和OpenSSL等依赖项。您可以使用RubyInstaller和Git for Windows来安装这些依赖项。 2. 下载并安装GitLab:您可以从GitLab官网下载GitLab Community Edition的安装程序,并按照提示进行安装。 3. 配置GitLab:安装完成后,您需要配置GitLab的一些基本设置,例如管理员账户、SMTP设置、域名等。 4. 启动GitLab:完成配置后,您可以启动GitLab并访问Web界面,开始使用GitLab进行代码管理和协作。 需要注意的是,在Windows 10上搭建GitLab服务器可能会遇到一些问题,例如权限问题、端口冲突等。因此,建议您在安装和配置过程中仔细阅读相关文档和教程,并根据实际情况进行调整。 ### 回答2: Windows10操作系统是微软公司新推出的一款操作系统,是当前PC端最流行的系统之一。GitLab是一个用于代码仓库管理的开源软件,支持代码版本管理、问题跟踪、CI/CD等功能。在Windows10上搭建GitLab服务器可以实现本地代码仓库管理,提供快速部署和持续集成等功能。下面详细阐述在Windows10上搭建GitLab服务器的步骤: 1. 安装GitLab依赖软件 在安装GitLab之前,需要先将一些依赖软件安装好。这些依赖包括Ruby、PostgreSQL数据库和OpenSSH。需要到对应的官方网站上下载并进行安装。 2. 安装GitLab 在安装GitLab之前,需要先从官方网站上下载适合Windows10平台的GitLab软件文件。下载完成后,将文件解压缩到本地目录,并进入安装目录。 3. 配置GitLab 在安装目录下,使用管理员权限进行cmd打开,进入GitLab配置文件目录。打开gitlab.rb文件,进行相关参数的配置,例如GitLab监听的IP和端口号、邮件服务器的设置、数据库的连接参数等等。设置完成后,保存文件并退出。 4. 启动GitLab 在cmd命令行中,执行GitLab的启动命令,例如“gitlab-ctl start”,等待启动完成。此时,GitLab就可以正常访问了。如果出现启动失败的情况,需要检查配置文件是否有误或依赖软件是否安装好。 5. 访问GitLab 在浏览器中,访问配置文件中设置的IP和端口号,例如“http://localhost:80”。如果GitLab启动成功,将自动跳转到登录页面。在此输入管理员用户名和密码,即可登录到GitLab管理后台。 在Windows10上搭建GitLab服务器需要一定的技术储备和安装经验,需要认真按照上述步骤进行操作,确保安装过程顺利。在安装完成后,可以通过GitLab在本地实现代码仓库管理、版本控制、自动化部署等功能,提高代码开发效率和质量,也为以后的团队协作奠定了良好的基础。 ### 回答3: 在Windows10系统上搭建GitLab服务器需要进行以下步骤: 1.下载并安装GitLab 首先需要从GitLab官网下载安装程序,并根据提示安装。注意在安装过程中需要选择合适的端口号,建议使用默认值(8080),以防止与其他服务端口号发生冲突。 2.安装和配置Git 在安装GitLab之前需要确保系统上已经安装了Git。如果没有安装可以前往Git官网下载并安装。安装完成后需要进行一些基本配置,如设置用户名和邮箱等信息。 3.创建并配置GitLab用户 安装完成后需要在GitLab上创建一个管理员账号,用于管理GitLab服务。创建账号时需要设置密码和邮箱等信息,并对账号进行必要的权限设置。 4.配置服务器防火墙 为了保障GitLab服务器的安全性,需要在服务器上配置防火墙。可以使用Windows自带的防火墙进行配置,将GitLab使用的端口号加入到允许列表中。 5.初始化GitLab并启动服务 完成以上步骤后,需要在GitLab安装目录下输入命令"gitlab-ctl reconfigure"进行初始化,然后使用命令"gitlab-ctl start"启动服务即可。在启动服务之前需要确保端口号和防火墙配置正确。 6.使用GitLab进行版本管理 搭建GitLab服务器后,就可以使用GitLab进行项目管理和版本控制了。在GitLab上创建项目并添加代码库,然后使用Git客户端与GitLab进行连接并提交代码即可。 需要注意的是,在搭建GitLab服务器的过程中一定要仔细阅读并遵循官方文档的指引,确保每个步骤都正确无误。同时也要注意服务器的安全性,保护好GitLab服务以及其中存储的代码和数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值