当前位置: 首页 > news >正文

git管理

git管理

当一个程序员(不管是什么方向的,C++/C/python等)不停的产生代码时,风险一开始就站在了代码背后,类似的问题有送审前夕发现最新改的论文丢了,实验跑出来那一刻要出图的时候发现这个数据不是最新处理过的……相信当过几年学术/工作🐮🐴的同类都有体会。

大概是在工作后才开始正视成果的管理科学这件事,一来是,学生时代几乎未参与过大型的工程项目,对管理的需求不是那么迫切;二来是,搞出成果就占据了大部分的精力,谁要给我说分出精力学习怎么管理成果……眼前飘过个凡尔赛的货

一、管理成果究竟在管理什么?

  1. 版本轨迹
    • 代码的完整演进历史(谁在什么时间修改了什么内容)
    • 关键节点的可回溯能力(如论文投稿前、软件发布时的版本快照)
  2. 协作安全
    • 避免覆盖冲突(多人修改同一文件时的协调机制)
  3. 资产整齐
    • 代码+非代码资产统一管理(实验数据、配置、文档等)

二、核心管理工具

工具对比

工具类型代表适用场景
集中式VCSSVN二进制文件为主的传统项目
分布式VCSGit代码为主的高速迭代项目

Git的核心能力

版本控制
代码回溯
差异对比
分支管理
并行开发
功能隔离
分布式架构
离线工作
多备份

三、使用git 工具

本地管理

# .gitignore最佳实践(过滤非必要文件)
*.log
.DS_Store
__pycache__/
# 但保留关键配置文件
!config.yaml

远程管理(以gitlab为例)

# 关联远程仓库(GitLab示例)
git remote add origin git@gitlab.com:your_group/project.git
# 推送时自动建立追踪关系
git push -u origin main
  • 分支保护规则(需在GitLab设置):
  • main分支:禁止直接push,仅通过MR合并
  • release/*分支:测试团队可读,开发者不可写
  • 自动化备份:利用GitLab CI定时归档到对象存储

协作管理

开发者 Merge Request GitLab CI 主分支 团队 创建合并请求 自动触发代码评审 执行自动化测试 合并代码 反馈修改意见 alt [测试通过且评审通过] [发现问题] 开发者 Merge Request GitLab CI 主分支 团队
  • 权限分级:
    Reporter: 查看代码/提交Issue
    Developer: 推送代码/创建MR
    Maintainer: 合并MR/管理分支保护规则

四、总结

git不是可选,它与轨迹共生,在项目启动第一天就应该执行:

git init && git commit --allow-empty -m "Start tracking time"
http://www.lqws.cn/news/87715.html

相关文章:

  • Linux 环境下高效视频切帧的实用指南
  • ES6 Promise 状态机
  • 在linux系统上搭建git服务器(ssh协议)
  • k8s的出现解决了java并发编程胡问题了
  • sudo docker exec -it backend bash 以交互方式(interactive)进入正在运行的 Docker 容器的命令行环境
  • 【leetcode】20. 有效的括号
  • 代码训练LeetCode(19)轮转数组
  • Axure-元件流程图
  • python,shell,linux,bash概念的不同和对比联系
  • 运行shell脚本时报错/bin/bash^M: 解释器错误: 没有那个文件或目录
  • 当 “欧洲版 Cursor” 遇上安全危机
  • Python趣学篇:从零打造智能AI井字棋游戏(Python + Tkinter + Minimax算法)
  • K8S上使用helm部署 Prometheus + Grafana
  • 高考数学易错考点01 | 临阵磨枪
  • Go Gin框架深度解析:高性能Web开发实践
  • react native webview加载本地HTML,解决iOS无法加载成功问题
  • 如何轻松地将数据从 iPhone传输到iPhone 16
  • React Native图片预加载:让你的应用图片预览像德芙一样丝滑
  • vue3学习
  • dvwa7——SQL Injection
  • TypeScript中class的两种继承方式extends和implements的对比
  • Hadoop 3.x 伪分布式 8088端口无法访问问题处理
  • 【Java实用工具类】手撸SqlBuilder工具类,优雅拼接动态SQL,MyBatisPlus同款风格!
  • 记一次sql按经纬度计算距离
  • 立志成为一名优秀测试开发工程师(第十一天)—Postman动态参数/变量、文件上传、断言策略、批量执行及CSV/JSON数据驱动测试
  • K8s基础一
  • k8s更新证书
  • 【信创-k8s】海光/兆芯+银河麒麟V10离线部署k8s1.31.8+kubesphere4.1.3
  • 03.搭建K8S集群
  • IPython 使用技巧整理