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

这篇具有很好参考价值的文章主要介绍了【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版本控制】以及搭建gitlab服务,git,gitlab

常用命令:

 - 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、创建仓库
【Git版本控制】以及搭建gitlab服务,git,gitlab
3、配置ssh公钥
[root@redhat ~]# ssh-keygen -t rsa
然后不断回车
获取公钥:[root@redhat ~]# cat ~/.ssh/id_rsa.pub
【Git版本控制】以及搭建gitlab服务,git,gitlab
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

邮箱的授权码获取:
【Git版本控制】以及搭建gitlab服务,git,gitlab

期间出现遇到的问题:

在这里我出现了第一个问题:
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的加密传输弄好:
【Git版本控制】以及搭建gitlab服务,git,gitlab
发送邮箱测试:

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

邮箱测试成功:
【Git版本控制】以及搭建gitlab服务,git,gitlab

六、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 ----》 查看日志

【Git版本控制】以及搭建gitlab服务,git,gitlab
搭建成功!
docker搭建gitlab :https://blog.csdn.net/BThinker/article/details/124097795,可以看看别人的博客文章来源地址https://www.toymoban.com/news/detail-830673.html

到了这里,关于【Git版本控制】以及搭建gitlab服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 版本控制系统git:一文了解git,以及它在生活中的应用,网站维护git代码,图导,自动化部署代码

    目录 1.Git是什么 2.git在生活中的应用 2.1git自动化部署代码 3.网站维护git代码

    2024年02月07日
    浏览(48)
  • 部署Git版本控制系统 | 优化Web服务器

    前序文章: https://blog.csdn.net/shengweiit/article/details/135193074 部署git版本控制系统,管理网站代码 基于ssh协议的服务器 基于git协议的服务器 基于HTTP协议的服务器 上传代码到版本库 1. 安装软件包,创建空仓库

    2024年02月04日
    浏览(41)
  • Git (版本控制,git安装和配置,git代码托管服务,git操作本地远程仓库,分支,idea整合git)【看这一片就够】

    目录 一、版本控制介绍 1. 版本控制介绍 2. 版本控制工具 3. git简介 二、git安装与配置 1. 下载git 2. 安装git 2. 配置git 三、git代码托管服务 1. 常见的git代码托管服务 2. 注册码云帐号【这里介绍一种的用法,其它也是一样的操作】 3. 创建远程仓库 四、git命令-操作本地仓库 1. 获

    2024年04月14日
    浏览(80)
  • 云计算项目四:部署Git版本控制系统 | 优化Web服务器

    前序文章: https://blog.csdn.net/shengweiit/article/details/135193074 部署git版本控制系统,管理网站代码 基于ssh协议的服务器 基于git协议的服务器 基于HTTP协议的服务器 上传代码到版本库 1. 安装软件包,创建空仓库

    2024年01月24日
    浏览(50)
  • [GitLab] 安装Git 指定版本

    检查是否已经安装 如果已经安装,先卸载 在GitHub上选择需要下载的版本 Git版本 在/usr/local/目录下新建文件夹:git,并在/usr/local/git/文件夹内下载压缩包 解压 进入根目录 安装依赖库 编译git源码 安装git至/usr/local/git路径 编辑配置文件 在末尾追加 使配置文件生效 查询git版本

    2024年02月05日
    浏览(50)
  • 分布式版本控制系统-GitLab搭建

    🍁个人主页:微枫Micromaple ✨本期专栏:《0到1项目搭建》欢迎订阅学习~ 📌源码获取:GitCode、GitHub、码云Gitee 持续更新中,别忘了 star 喔~ 在企业开发过程中,我们需要搭建公司内部的Git版本控制系统,开源免费的 GitLab 成为了我们的选择。本文详细讲解了分布式版本控制系

    2024年02月02日
    浏览(31)
  • Git以及Gitlab的快速使用文档

    优质博文:IT-BLOG-CN 【1】 Windows 为例,去百度下载安装包。或者去官网下载。安装过秳返里略过,一直下一步即可。丌要忉记设置环境发量。 【2】打开 cmd ,输入 git –version 正确输出版本后则 git 安装成功。 Git 和 svn 类似,都可以 clone 远程代码,但是 git 可以在本地生成

    2024年04月16日
    浏览(39)
  • Git、Gitee、Github、Gitlab区别与 Git搭建

    Git: 本地软件,无需联网即可使用,实现 本地代码 的管理。         分布式版本控制系统,是一种工具,用于代码的存储和版本控制。         将 本地文件 通过一定的操作将其同步上传到 Github或Gitee Gitee :是一家中国公司, GitHub 相当于 云服务器 ,这个云服务器是国外

    2024年02月11日
    浏览(44)
  • CentOS 搭建 GitLab && Git

    1. 安装 sshd 依赖 输入以下命令: 注:因为我之前已经装过了 sshd 依赖,所以就如上图所示。没装过的耐心等待就好。 2. 启动并设置开机自启 依次输入以下命令: 3. 安装防火墙 如果已经安装了防火墙并且已经在运行状态,则可直接进行第 5 步。 那如何判断 CentOS7 是否安装了

    2024年02月15日
    浏览(51)
  • DevOps基础服务1——版本控制gitlab

    概念: 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。 常用版本控制工具:gitlab、subversion。 主要功能: 追踪文件的变更。可以追踪到什么人在什么时候更改了什么内容。每次文件发生改变,则文件

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包