GitLab的使用

提交代码到 GitLab

原理

在团队协作开发中,保持本地代码与远程仓库同步是避免冲突的基础。通过 fetch 获取远程最新信息,commit 记录本地变更,push 上传本地提交,最终通过合并分支将代码整合到目标分支,确保代码迭代的有序性。

实践步骤

  1. 获取远程最新代码:执行git fetch命令,同步远程仓库的最新分支和提交信息,确保本地了解远程的最新状态。

  2. 提交到本地仓库:仅修改自己负责模块的代码,其他模块代码除非必要否则不改动。完成修改后,执行git add <相关文件>添加变更,再用git commit -m "清晰描述提交内容,如:修复XX模块的XX问题"将变更提交到本地仓库。

  3. 推送到远程仓库:运行git push origin <本地分支名>,将本地提交推送到远程对应的分支。

  4. 在 GitLab 上合并分支:登录 GitLab,进入对应项目,找到 "Merge Requests" 选项,创建新的合并请求,选择源分支(自己推送的分支)和目标分支,填写相关说明后提交。等待审核通过后,完成分支合并。

合并冲突与落后分支的解决

原理

合并冲突是由于多人修改了同一文件的同一部分,Git 无法自动判断保留哪部分内容导致的。落后分支则是因为本地分支未包含远程分支的最新提交,需要先同步再处理。

实践步骤

  1. 拉取远程最新代码:执行git pull origin <目标分支>,该操作会先 fetch 远程代码,再尝试合并到本地分支。

  2. 解决合并冲突:若出现冲突,Git 会标记冲突文件。打开冲突文件,找到带有<<<<<<< HEAD=======>>>>>>> 分支名标记的冲突区域,根据业务需求选择保留合适的代码(可保留自己的、他人的或整合两者),删除冲突标记。

  3. 提交并推送:解决冲突后,执行git add <冲突文件>git commit -m "解决与XX分支的合并冲突",再用git push origin <本地分支名>推送到远程仓库。

  4. 及时同步导师修改:导师修改并合并代码后,应及时执行git pull获取最新代码,确保自己的分支与团队主线保持一致。

回滚机制

原理

当已提交的代码存在问题需要撤销时,回滚机制可帮助恢复到之前的正确状态。新建本地分支进行回滚操作,可避免直接在原有分支上操作导致的历史记录混乱,保障代码库的稳定性。

实践步骤

  1. 新建本地分支:执行git checkout -b <新分支名,如:rollback-fix>,创建一个新的本地分支,用于进行回滚操作,保留原分支的历史记录。

  2. 回滚对应的提交:

    1. 先通过git log查看提交历史,找到需要回滚的提交 ID(如:a1b2c3d)。
    2. 如果要回滚文件的话,可以直接右击文件,直接回滚
    3. 执行git revert <提交ID>,该命令会创建一个新的提交,抵消指定提交的修改,不改变原有提交历史,适用于已推送到远程的提交。
  3. 完成回滚后,可根据需要将回滚后的分支推送到远程并进行合并操作。

相关推荐
AI绘画哇哒哒5 小时前
【建议收藏!】35岁后端血泪忠告,这3类人别硬转Agent(过来人亲述)
java·人工智能·后端·ai·程序员·大模型·agent
唐青枫7 小时前
一个值多种形态:Zig union、Tagged Union 与内存布局实战
后端
卷无止境7 小时前
Windows 上丝滑开发 Python,并稳定构建 Docker 镜像
后端·python·docker
Nturmoils7 小时前
备份完不算完,先还原到临时库验一遍
后端
Csvn7 小时前
📊 SQL 入门 Day 22:视图与物化视图
后端·sql
Csvn8 小时前
🐍 Day 4: Python 控制流 — 条件、循环与推导式的艺术
后端·python
2601_953720828 小时前
【计算机毕业设计】基于Vue与Spring Boot的高校兼职信息服务平台设计与实现
spring boot·后端·课程设计
再吃一根胡萝卜9 小时前
用 Rust 写一个桌面悬浮图标:为什么它比 Python 更适合 AI 桌面工具?
后端
IT_陈寒10 小时前
Vue的computed属性把我坑惨了,原来我一直用错姿势
前端·人工智能·后端
evans在进步11 小时前
Spring Boot 核心机制详解:可执行 JAR、CORS、静态资源与配置绑定
spring boot·后端·jar