面试总结46-50天

发布于:2025-07-08 ⋅ 阅读:(21) ⋅ 点赞:(0)

第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 命令从远程仓库拉取代码到本地。


网站公告

今日签到

点亮在社区的每一天
去签到