分享一个git日常开发流程

分享一个使用git的工作流程:每天上班之前从远程仓库更新master分支到本地开发分支,每天下班前提交代码到远程开发分支,定期将测试后的远程开发分支跟master分支合并。下面用一个流程图来展示整个流程的全貌:


开始新一天开发
切换到本地 dev 分支
拉取远程 master 到本地
将 master 合并到 dev

(解决可能的冲突)
进行日常开发
下班前提交代码到本地仓库
推送本地 dev 到远程 dev
是否定期测试通过?
创建 Merge Request
代码评审与测试
合并到 master 分支

下面,拆解图中的每一个日常和定期操作步骤。

🔄 每日开发前:同步远程 Master 到本地 Dev

这个操作的目的是将主干的最新更新合并到你的开发分支,保证你的开发起点是最新的。

  1. 确保你在本地 dev 分支

    bash 复制代码
    git checkout dev
  2. 拉取远程 master 分支的最新代码

    bash 复制代码
    git fetch origin master

    这条命令只会获取更新,不会改变你本地任何文件。

  3. 将远程 master 分支的更新合并到本地 dev 分支

    bash 复制代码
    git merge origin/master

    关键提示 :此时可能会发生代码冲突。如果发生,Git会提示你。你需要:

    • 手动打开冲突文件,解决冲突(删除 <<<<<<<=======>>>>>>> 这些标记,保留正确的代码)。
    • 解决所有冲突后,执行 git add . 标记冲突已解决。
    • 最后执行 git commit 来完成这次合并。

💾 每日下班前:提交本地 Dev 到远程 Dev

这个操作是保存你一天的工作成果,并备份到远程服务器。

  1. 添加所有更改的文件到暂存区(也可指定具体文件):

    bash 复制代码
    git add .
    # 或添加特定文件 git add file1.py file2.js
  2. 提交更改到本地仓库

    bash 复制代码
    git commit -m "清晰的提交说明,例如:完成用户登录模块前端界面"
  3. 推送本地 dev 分支到远程 origindev 分支

    bash 复制代码
    git push origin dev

    如果是第一次推送本地 dev 分支,需要使用 git push -u origin dev 来建立追踪关系,之后直接 git push 即可。

🚀 定期操作:将测试通过的 Dev 合并到 Master

这个操作通常在一个功能完成并通过测试后进行,建议在GitLab网页端完成,因为它提供了代码评审(Merge Request)的流程。

  1. 在GitLab上创建合并请求(Merge Request)

    • 进入你的项目页面。
    • 点击侧边栏或仓库上方的 "Merge Requests" -> "New merge request"
    • 源分支(Source branch) 选择 dev目标分支(Target branch) 选择 master
    • 填写标题和描述,说明本次合并的内容、测试情况等,并指派给相关同事评审。
  2. 代码评审与测试

    • 团队成员在Merge Request页面内评论代码、讨论修改。
    • 可以利用GitLab CI/CD自动运行测试,确保合并不会破坏主线功能。
  3. 合并到 Master

    • 评审通过且所有测试成功后,由有权限的人员(可能是你或项目负责人)点击 "Merge" 按钮。
    • 通常选择 "Merge commit" 方式,这样会生成一个合并提交记录,历史更清晰。

⚠️ 重要注意事项与最佳实践

  • 先同步,后开发 :养成每天第一步先 git fetch + git merge 的习惯,能极大减少后续合并的冲突范围和难度。
  • 勤提交,描述清:本地提交可以频繁一些,但推送到远程前,建议整理成有逻辑的提交。清晰的提交信息对日后排查问题至关重要。
  • 利用 git status :任何时候不确定状态,运行 git status,Git会给出下一步该做什么的提示。
  • 保护 Master 分支 :在GitLab项目设置中,建议将 master 分支设置为"受保护分支",禁止直接 push,强制通过Merge Request合并,这是保证代码质量的关键门禁。
相关推荐
TDengine (老段)4 小时前
从施工监测到运营预警,桥科院用 TDengine 提升桥梁数据管理能力
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
宁波鹿语心理4 小时前
无条件的在场:一项极简亲子依恋修复练习的机制分析与实证观察
大数据
带娃的IT创业者5 小时前
Git commands I run before reading any code
git·开发工具·版本控制·编程技巧·代码审查
九成宫7 小时前
Git 与远程仓库实操记录:克隆、配置、分支推送与问题排查
笔记·git·ssh
二哈赛车手10 小时前
新人笔记---ES和kibana启动问题以及一些常用的linux的错误排查方法,以及ES,数据库泄密解决方案[超详细]
java·linux·数据库·spring boot·笔记·elasticsearch
lizhihai_9912 小时前
股市学习心得—半导体12种核心材料
大数据·人工智能·学习
ZGi.ai12 小时前
智能客服系统设计:从工单分类到自动派单的工程实现
大数据·人工智能·分类
PaperData12 小时前
2000-2023年地级市数字基础设施评价指标体系
大数据·网络·数据库·人工智能·数据分析·经管
Blockchain Learning12 小时前
去中心化身份(DID)模型解析:区块链如何重塑身份管理?
大数据·去中心化·区块链
xcbrand13 小时前
政府事业机构品牌策划公司哪家可靠
大数据·人工智能·python