第47天 JAVA微服务案例和软件仓库GitLab
JAVA微服务案例 暂更
1.Git的工作原理图
2.git reset 是对本地仓库的项目进行回滚操作的命令
--soft # 工作目录和暂存区都不会被改变,只是本地仓库中的文件回滚到指定的版本,仅移动 HEAD 和master指针的指向,不会重置暂存区或工作区
--mixed # 默认选项。回滚暂存区和本地仓库,但工作目录不受影响
--hard # 本地仓库 , 暂存区和工作目录都回滚到指定的提交 , 该选项非常危险
3.git工作的全部流程
1. 初始化与基础配置
场景:创建新项目并配置 Git
# 创建项目目录并初始化Git仓库
mkdir my-project && cd my-project
git init
# 配置用户信息(首次使用时)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 创建文件并提交
touch README.md
git add README.md # 添加到暂存区
git commit -m "Initial commit: Add README" # 提交到本地仓库
2.分支管理
场景:开发新功能(假设主分支为 main
)
# 创建并切换到新分支
git checkout -b feature/login
# 在新分支上添加登录页面
touch login.html
git add login.html
git commit -m "Add login page"
# 切换回主分支
git checkout main
# 查看所有分支
git branch
3.合并分支
场景:功能开发完成,合并到主分支
# 确保在 main 分支上
git checkout main
# 合并 feature/login 分支
git merge feature/login
# 删除已合并的分支(可选)
git branch -d feature/login
4. 远程仓库协作
场景:将本地仓库连接到远程 GitHub 仓库
# 添加远程仓库地址
git remote add origin git@github.com:your-username/my-project.git
# 推送主分支到远程
git push -u origin main # -u 参数设置默认上游分支
# 拉取远程更新(团队成员提交后)
git pull origin main
5. 解决冲突
场景:团队成员修改了同一文件,拉取时产生冲突
# 拉取更新时发现冲突
git pull origin main
# 查看冲突文件
git status # 显示 "both modified" 的文件
# 手动编辑冲突文件(示例)
<<<<<<< HEAD
<div class="header">My Website</div> # 本地修改
=======
<div class="header">Our Website</div> # 远程修改
>>>>>>> origin/main
# 解决冲突后提交
git add conflict-file.html
git commit -m "Resolve conflict in header"
6.版本回退
场景:发现某个提交有问题,需要回退
# 查看提交历史
git log --oneline
# 回退到上一个提交(保留修改)
git reset HEAD~1
# 彻底丢弃上一个提交(危险操作)
git reset --hard HEAD~1
# 撤销特定提交(安全方式)
git revert [commit-hash] # 创建一个反向提交
7.标签管理
场景:发布版本 v1.0
# 创建轻量标签
git tag v1.0
# 创建带注释的标签(推荐)
git tag -a v1.0 -m "Release version 1.0"
# 推送标签到远程
git push origin v1.0
8.查看历史与状态
# 查看提交历史(带分支图)
git log --graph --oneline --decorate
# 查看文件修改详情
git diff # 工作区 vs 暂存区
git diff --staged # 暂存区 vs 最新提交
# 查看当前状态
git status
完整流程图
1. 初始化仓库
git init → git add → git commit
2. 分支开发
git checkout -b feature → 编辑文件 → git add → git commit
3. 合并分支
git checkout main → git merge feature
4. 远程协作
git remote add origin → git push -u origin main
↓
团队成员: git clone → 编辑 → git push
5. 解决冲突
git pull → 手动编辑 → git add → git commit
6. 版本管理
git tag → git log → git revert/reset
第48天 GitLab版本仓库和Jenkins基础
1.如何重置gitlab密码(忘记密码)
user = User.find_by_username 'root'
user .password = "wang@123"
user .password_confirmation = "wang@123"
user.save #保存
quit #退出控制台
忘记密码:如何破解mysql密码,如何破解linux密码
关于mysql:
1.停止mysql服务 systemctl stop mysql
2.进入安全模式
mysqld_safe --skip-grant-tables &
#--skip-grant-tables 参数表示跳过权限表的加载,& 表示让该进程在后台运行。
3.登录MySQL
打开新的终端窗口,无需密码即可登录 MySQL:mysql -u root
4.修改密码
-- MySQL 5.7及之前版本
UPDATE mysql.user SET authentication_string = PASSWORD('newpassword') WHERE User = 'root';
FLUSH PRIVILEGES;
-- MySQL 8.0及以上版本
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
5. 退出 MySQL 并恢复正常启动
pkill -f "mysqld_safe --skip-grant-tables" #停止以特殊模式运行的 MySQL 服务
systemctl start mysql #启动mysql
关于linux密码:
1.重启系统,进入 GRUB 菜单
开机时按 Esc 或 Shift(视系统而定),显示 GRUB 菜单。
选择要启动的内核,按 e 编辑启动参数。
修改启动参数
找到以 linux16 或 linux 开头的行,在末尾添加:
plaintext
rd.break enforcing=0
2.rd.break:进入紧急救援模式。
enforcing=0:临时禁用 SELinux(否则可能权限不足)。
挂载根文件系统
按 Ctrl + x 启动系统,进入紧急救援模式后,依次执行:
bash
mount -o remount,rw /sysroot # 重新挂载根目录为可写模式
chroot /sysroot # 切换到系统根目录
3.重置密码
bash
passwd root # 设置root密码(按提示输入两次新密码)
4.更新 SELinux 上下文(如果之前添加了 enforcing=0)
bash
touch /.autorelabel # 系统重启时自动修复SELinux标签
5.退出并重启
bash
exit
reboot
2. 什么是CICD?
最初是 瀑布模型 ,后来是 敏捷开发 ,现在是 DevOps ,这是现代开发人员构建出色的产品的技术路线。 随着DevOps 的兴起,出现了 持续集成( Continuous Integration ) 、 持续交( Continuous Delivery ) 、 持续部署( Continuous Deployment ) 的新方法。
3.Gitlab如何进行备份和还原?
备份方法新版
gitlab-ctl backup-etc #备份 配置文件 命令
/etc/gitlab/config_backup/ #执行上面的命令会在←路径下生成tar文件
gitlab-backup create #备份 数据 命令
恢复的前提条件
①备份和恢复使用的版本要一致
②还原相关配置文件后,执行 gitlab-ctl reconfigure
③确保gitlab 正在运行状态
恢复方法新版
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
gitlab-backup restore BACKUP= 备份文件名的时间部分 _Gitlab 版本
↑(备份文件在 /var/opt/gitlab/backups/)
gitlab-ctl reconfigure
gitlab-ctl restart
4.关于gitlab一直出现502的报错,你怎么解决?(自己遇到的)

先用 gitlab-ctl status查看各个服务的运行状态
查看 GitLab 的日志文件(位于
/var/log/gitlab
目录下),如 gitlab-rails
日志、 gitlab-unicorn
日志等,根据日志中的错误信息定位问题并解决。例如,如果是配置文件错误,修改对应的配置文件(如 /etc/gitlab/gitlab.rb
)后,重新配置并启动 GitLab( gitlab-ctl reconfigure,然后gitlab-ctl restart)。
本次我在/etc/gitlab/gitlab.rb 中做出如→修改:unicorn['port'] = 9090
后 gitlab-ctl reconfigure重启配置 恢复正常
5.重置 GitLab 忘记的密码
gitlab-rails console -e production
user = User.find_by_username 'root'
user.password="xing@123"
user.password_confirmation="xing@123"
user.save
quit
6.简述什么是 DevOps?
DevOps 是一组概念、实践与文化理念的集合,旨在打破开发(Development)和运维(Operations)之间的壁垒,促进两个团队之间的高效协作、沟通与集成,从而更快、更可靠地交付高质量的软件产品或服务。
7.什么是版本控制系统VCS
以 Git 为例,开发人员通常先将远程仓库的代码克隆到本地,在本地进行开发和修改后,使用 git add
命令将变更的文件添加到暂存区,然后通过 git commit
命令提交到本地仓库,添加提交说明。如果需要与团队其他成员共享变更,使用 git push
命令将本地提交推送到远程仓库;若要获取其他成员的最新变更,则使用 git pull
命令从远程仓库拉取代码到本地。