记部署gitlab出现的问题

article/2025/10/15 4:22:03

一、创建gitlab用户时,用户没收到邮件

排除步骤:

  1. 使用 gitlab.rb 里面配置的邮件地址向创建 gitlab 用户时配置的邮件地址发送邮件
    收件方能正常收到邮件,排除收件方配置了拒收邮件的可能性。
  2. 使用 gitlab-rails 命令进行测试
    gitlab-rails console
    Notify.test_email('收件方地址','mail title','mail txt').deliver_now
    在这里插入图片描述
    发送邮件失败,ok,开始检查配置文件。
  3. 检查 gitlab.rb 配置文件
    在这里插入图片描述
external_url 'http://ip'gitlab_rails['gitlab_email_from'] = 1234567@qq.com"
gitlab_rails['smtp_enable'] = true 
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 345
gitlab_rails['smtp_user_name'] = "1234567@qq.com"
gitlab_rails['smtp_password'] = "邮箱授权码"
gitlab_rails['smtp_domain'] = "smt.qq.com"
gitlab_rails['smtp_authentication'] = 'login'
gitlab_rails['smtp_tls'] = true 
user['git_user_email'] = "1234567@qq.com"

仔细查询了参数代表的意思,发现是端口搞错了,smtp_port 代表是端口不是本机需要开放的端口,而是 smtp 服务端口。将345改成465。

  109端口(POP2):109端口是为POP2(Post Office Protocol Version 2,邮局协议2)服务开放的,是用于接收邮件的。110端口(POP3):110端口是为POP3(Post Office Protocol Version 3,邮局协议3)服务开放的,是用于接收邮件的。143端口(IMAP):143端口是为IMAP(INTERNET MESSAGE ACCESS PROTOCOL)服务开放的,是用于接收邮件的。465端口(SMTPS):465端口是为SMTPS(SMTP-over-SSL)协议服务开放。995端口(POP3S):995端口是为POP3S(POP3-over-SSL)协议服务开放。993端口(IMAPS):993端口是为IMAPS(IMAP-over-SSL)协议服务开放。

修改完 gitlab.rb 配置文件后,重新加载配置文件gitlab-ctl reconfigure,再次使用 gitlab-rails console 指令来测试邮件:
在这里插入图片描述
邮件发送成功。

二、创建新项目,没有勾选 Initialize repository with a README,推送代码到仓库时显示分支不一样

在组队创建新项目时,没有勾选 Initialize repository with a README,导致推送代码到指定分支名时报错:
在这里插入图片描述

这里git项目推荐的执行命令
在这里插入图片描述
但是执行这一步时报错,原因是git版本太低,所以后面执行git push xxx xxx xx失败,但我又不想升级git版本,下面用另一种方式解决:
git branch main ----- 此时将该新分支保存在本地
git branch -r ----- 查看远程仓库分支
git branch ----- 查看本地仓库分支
git push origin 分支名 ----- 将 分支名 同步到远程仓库
然后再执行 git push -u origin main 就成功了
在这里插入图片描述

  1. 额外衍生:删除分支(谨慎操作!!!!)
    删除 test分支
    1) git branch -d test ----- 删除本地分支test
    2) git push origin --delete test ----- 删除远程仓库test分支
    在这里插入图片描述
  2. 查看远程仓库分支、本地仓库分支、当前所在分支
    git branch -a
    在这里插入图片描述

三、修改本地分支内容后,远程仓库的内容已被其他的开发者提交过,导致提交失败

修改完本地仓库代码,在推送代码到远程仓库前,需先把远程仓库的代码同步到本地,但由于本地已修改部分文件,并且远程仓库代码已被通过web界面修改,导致拉取代码到本地时报错。不建议直接在web界面修改代码
git push 时报错
在这里插入图片描述
这是本地仓库上一次提交的代码版本:15398f97644b75203614d81195ac5c0f4f8c8e79
在这里插入图片描述
这是远程仓库代码版本:5dde94b776afeda7982e7f97134ba55e5cbe7af8
在这里插入图片描述
很明显本地仓库代码和远程仓库代码不一致
于是去拉取远程仓库代码到本地:git pull
在这里插入图片描述
还是报错,提示 index/index.html 合并冲突
两种解决方法,个人倾向与第二个方法

  1. 将合并冲突的文件改成别的名字,然后在拉取代码
    如果文件过多可使用如下方法:
本地修改的代码会被丢弃,不可找回;
git reset --hard
git pull
  1. 使用 git stash 保存当前代码进度
git stash
git pull
git stash pop
  • git stash:保存当前工作进度,能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。也可以用git stash save,作用等同于git stash,区别是可以加一些注释
  • git pull:这个应该不用说了吧!(把服务器仓库的更新拉到本地仓库中)
  • git stash pop:可以把你刚才stash到本地栈中的代码pop到本地(也可以用git stash apply,区别:使用apply恢复,stash列表中 的信息是会继续保留的,而使用pop恢复,会将stash列表中的信息进行删除。)
  • git stash list:存储到本地栈顶以后,你可以使用git stash list 查看你本地存储的stash日志
  • git stash clear: 清空Git栈,原来stash的节点都会被清除

四、分支合并

  1. 新建一个分支,在此分支上修改内容
  2. 将新分支的内容提交到远程仓库:git push origin test
  3. 拉取远程仓库代码到工作区:git pull
  4. 测试完成后合并分支:1. git merge origin/test; 2. git push

http://chatgpt.dhexx.cn/article/pUSYQKbX.shtml

相关文章

Gitlab和gitlab-runner安装和注册

目录 Git和SVN的区别 Gitlab CI/CD工作原理及使用步骤 Gitlab安装 gitlab-runner安装和注册 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。 公司内部一般会在自己的内网进行搭建Gitlab服务管理…

gitlab如何创建用户并登录

为了大家后期能方便创建用户和使用gitlab,先给大家设置为中文 设置为中文后保存然后刷新页面即可设置为中文 接下来教大家怎么创建git用户并进行登录 创建完用户后需要配置一次密码 配置完密码后退出用户测试进行新用户登录 这里用刚创建的新用户来登录 第一次登…

Gitlab-Runner安装并注册

本文介绍Gitlab-Runner的安装运行(包括docker方式安装运行及二进制直接运行),并介绍如何将Gitlab注册到Gitlab。同时还介绍了gitlab-runner的一些常用操作命令。 安装Gitlab-Runner gitlab-runner可以使用docker方式运行,也可以在…

通过docker搭建gitlab

通过docker搭建gitlab 一、安装 拉取docker镜像 docker pull gitlab/gitlab-ce启动容器 docker run -d -p 4443:443 -p 8080:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/dat…

gitlab-runner 注册失败

问题: 用docker启动gitlab-runner,注册runner 时报错:PANIC: Failed to register the runner. You may be having network problems。 不仅如此,我用gitlab-runner verify命令,也是报错:ERROR: Verifying r…

gitlab:(二)gitlab注册用户和邀请进入项目的问题

.新注册用户无法在管理员界面激活 在管理员界面无法进行管理,找不到相关的操作界面 当前gitlab版本 尝试降低gitlab版本 卸载之后删除残留文件 安装指定的低版本:gitlab-ce-12.7.5-ce.0.el7.x86_64.rpm yum install policycoreutils openssh-server op…

注册gitlab-runner

注册gitlab-runner 一、注册gitlab-runner(shared)二、注册gitlab-runner(group)三、注册gitlab-runner(specific) 使用管理员账号登录gitlab 一、注册gitlab-runner(shared) shared类型的gitlab-runner会运行整个gitlab平台项目中的作业; 二、注册gitlab-runne…

gitLab注册There was an error with the reCAPTCHA. Please solve the reCAPTCHA again.

目录 解决方案:第一步:第二步: Gitlab注册时报错:There was an error with the reCAPTCHA. Please solve the reCAPTCHA again. 今天注册时碰到以下问题: 提交后,给出如下图示 上面的错误是因为注册时有一…

gitlab-runner配置与注册

(1)启动gitlab-runner #创建volume docker volume create gitlab-runner-my-config #docker启动runner docker run -d --name gitlab-my-runner --restart always --nethost \-v /var/run/docker.sock:/var/run/docker.sock \-v gitlab-runner-my-conf…

gitLab账号注册,登陆,配置SSH,验证

文章目录 前言注册账号登陆添加SSH验证配置 前言 本文主要目的是讲述gitlab账号注册,登陆功能,以及如何生成ssh key,并添加ssh key到gitlab中。通过git工具将gitlab上的代码拉取到本地来验证ssh功能是否进行了有效的配置 注册账号 第一步&…

Servlet 过滤器( Filter )

Servlet 过滤器( Filter ) 原理图: 过滤器的使用场景 登录权限验证、资源访问权限控制、敏感词汇过滤、字符编码转换过滤器的优势 便于代码重用,不必每个servlet中还要进行相应的操作配置方式 web配置方式 <!--过滤器的xml配置 --> <filter><!--名称-->…

servlet过滤器中的注解配置详解

文章目录 注解配置WebFilter中的属性1. urlPatterns2. initParams3. dispatcherTypes 多个过滤器的执行顺序销毁阶段的触发机制 注解配置WebFilter中的属性 1. urlPatterns 指定一组过滤器的 URL 匹配模式。等价于 标签。 例1&#xff1a;将所有的请求都过滤掉 配置如果是指定…

Servlet过滤器与SpringMVC拦截器

Servlet API中提供了一个Filter接口&#xff0c;开发web应用时&#xff0c;如果编写的Java类实现了这个接口&#xff0c;则把这个java类称之为过滤器Filter。Web开发人员通过Filter技术&#xff0c;对web服务器管理的所有web资源&#xff1a;例如Jsp, Servlet, 静态图片文件或静…

JavaWeb Servlet过滤器概述

Servlet过滤器 1、什么是过滤器 Servlet过滤器具有拦截浏览器端请求的功能&#xff0c;Servlet过滤器可以改变请求中的内容来满足实际开发中的需求。 实质上Servlet过滤器就是在web应用服务器中的一个web应用组件&#xff0c;用于拦截浏览器与目标资源的请求&#xff0c;并对…

Servlet+过滤器

一、Servlet 1.1 概念 Servlet&#xff1a;Server Applet的简称&#xff0c;是服务器端的程序&#xff08;代码、功能实现&#xff09;&#xff0c;可交互式的处理客户端发送到服务端的请求&#xff0c;并完成操作响应。动态网页技术JavaWeb程序开发的基础&#xff0c;JavaEE…

java servlet过滤器简解及实例

在整个概念中&#xff0c;个人觉得有一篇文章写得不错&#xff0c;通俗易懂&#xff0c;这里就直接套用以上原博文&#xff0c; 一、概念&#xff1a; Filter也称之为过滤器&#xff0c;它是Servlet技术中比较激动人心的技术&#xff0c;WEB开发人员通过Filter技术&#xff0c;…

Servlet过滤器案例-自动登录

使用过滤器实现自动登录 登录的jsp页面 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <title&g…

Servlet过滤器拦截器

文章目录 1、什么是Servlet&#xff1f;2、过滤器与拦截器的区别 1、什么是Servlet&#xff1f; 参考&#xff1a;https://blog.csdn.net/wozaibohaibian/article/details/124778494 ​ servlet就是一个组件,需要符合servlet规范,并且需要部署到servlet容器里面才能运行 注&…

servlet过滤器原理及使用

原理 首先了解什么是过滤器&#xff0c;各种文章已经写的很清楚了 引用来自这篇大牛的博客 是Servlet技术中最激动人心的技术&#xff0c;WEB开发人员通过Filter技术&#xff0c;对web服务器管理的所有web资源&#xff1a;例如Jsp, Servlet, 静态图片文件或静态 html 文件等进…

Servlet——过滤器

Servlet过滤器 什么是过滤器 过滤器是一个程序&#xff0c;它先于与之相关的Servlet页面运行在服务器上&#xff0c;但它并不是一个标准的Servlet&#xff0c;它不能处理用户请求&#xff0c;也不能对客户端生成响应。它主要用于对HttpServletRequest进行预处理&#xff0c;也…