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

腾讯自研的 Git 客户端!!【送源码】

UGit 是一款为腾讯内部研发环境特点而定制的 Git 客户端,旨在提高开发效率和团队协作的流畅性。UGit 支持 macOS 10.11+、Apple Silicon 和 Win64 位系统。

https://ugit.qq.com/zh/index.html

主要特性

Ugit 提供便捷的大文件管理、快速提交、工蜂锁机制以及支持检出子目录等特性,极大提升了大型团队的协作效率和数据处理能力,是专业开发者不可或缺的工具。

便捷的大文件管理

图片

  • 内置 LFS 模版,腾讯众多大型项目 LFS 管理经验沉淀,尤其是游戏项目。

  • 支持对仓库或工作区进行大文件分析,以便于更好的配置 Git LFS 规则。

  • 提交时,可根据工蜂单文件大小限制,提示用户将超限文件纳入 Git LFS 管理。

  • 支持单仓库或多仓库清理 LFS 缓存,快速解决磁盘空间不足问题。

  • 支持使用 UGit 本地 LFS Cache 加速服务,体验极致的下载速度。

  • 支持超大文件 (>4GB) 的无损下载。

快速提交

图片

原生 Git 提交流程,如果远程有新的提交,Git 会强制要求先更新再提交,在一个大型项目中,提交流程会因为远程频繁变更而不停中断,影响工作效率。

UGit 的快速提交,可以实现只要用户提交的文件其他人没修改,可以在不更新情况下直接完成提交,不会因远程频繁变更而中断提交流程,让大型团队协作更加流畅。

工蜂锁

图片

  • 工蜂锁是针对游戏项目中存在大量二进制文件协作场景而设计的锁方案,解决了 Git LFS Lock 的稳定性和性能问题。

  • 支持对文件、目录进行加解锁。同时也可以支持全分支锁,即加锁一个对象时,同时锁定所有分支上的该对象。

  • 支持项目设置强制加锁工作流,要求用户必须先加锁才能提交。

  • 支持推送变更到远程后,自动对推送内容进行解锁。

  • 也可以配置路径的锁白名单,限定配置的目录只允许特定用户可以加解锁。

支持检出子目录

图片

对于大型仓库,克隆完整仓库下来可能需要很长时间,有些时候,我们只需要下载一个或若干子目录即可进行工作,此时可以使用 UGit 克隆时,只勾选工作需要用到的目录进行克隆,这样可以快速完成,不用等待。

基础能力

  • 极简操作,类似于 SVN 或 P4 的集中式版本控制工具体验,可一键提交或更新

  • OAuth,支持工蜂、Github、Coding.net 平台的 OAuth 认证

  • 集成工蜂合并请求,便捷的在客户端中进行 MR 评审或操作

  • 集成工蜂代码审查,在 UGit 中进行代码审查

  • 集成工蜂 Issue 管理,邮件式的产品体验,可便捷、快速的查看、修改或评论 Issue

  • Gitflow,可视化的交互集成业界经典的 Gitflow 工作流实践

  • 分支管理,可以查看分支生命周期、批量管理,比如可以快速批量清理无用分支

  • SSH 访问工蜂,支持零配置使用 SSH 访问工蜂

  • 提交关联,可在提交时关联工蜂 Issue

特色能力

  • 加速服务,支持 Git LFS 缓存加速、UE4 DDC、Unity Cache

  • 支持客户端钩子(python/shell/batch),可使用钩子脚本定制团队工作流,如提交规范检查

  • 定时任务,包括定时锁分支、定时更新(下载 LFS 数据/pull/pull -f 三种策略)

  • 仓库同步服务,支持 Git/SVN/P4 任意两种仓库之间互相按 Commit 维度进行单向或双向同步,也可进行仓库迁移

  • 分支规则管理,可一键锁定符合规则的分支;

  • 多仓库管理,Git Submodule 的替代方案,通过可视化操作,旨在解决大型项目多仓库依赖管理问题,支持批量克隆,一键更新、拉分支、切分支等等

  • 仓库分组管理,可以对仓库进行分组管理,并且分组信息会展示在仓库标签上

  • 变更集分组,可对工作区变更进行分组管理,按分组进行提交

  • 集成 CodeAction,不用克隆仓库就可以进行代码审查

  • 支持 Excel Diff&Merge,支持单元格内容、公式,暂不支持表格样式

  • 版本标记,支持在 UGit 仓库历史中标记版本为好的、坏的、标星等操作,方便版本回溯或版本信息共享;

UGit 的这些功能使其成为一个强大的工具,特别是对于那些处理大量数据和需要高效协作的团队,欢迎下载使用。

参考资料:

  • https://ugit.qq.com/zh/index.html

  • https://docs.qq.com/doc/DTEpoYWVwV1dhV0Rz


http://www.kler.cn/a/389321.html

相关文章:

  • css:盒子模型
  • 什么岗位需要学习 OpenGL ES ?说说 3.X 的新特性
  • GIS空间分析案例---城市公共设施配置与服务评价
  • 【ChatGPT】 如何让ChatGPT分析数据并得出结论
  • 【金融风控】特征评估与筛选详解
  • 解决表格出现滚动条样式错乱问题
  • vue3中使用输入框按回车键刷新页面问题
  • 零拷贝Zero Copy
  • RabbitMQ的应用
  • 【STK学习】part1-卫星轨道与Walker星座基础知识
  • 《TCP/IP网络编程》学习笔记 | Chapter 4:基于TCP的服务器端/客户端(1)
  • 信息泄露漏洞一文速通
  • Facebook vs. Google:哪个更适合你的品牌
  • rabbitMq怎么保证消息不丢失?消费者没有接收到消息怎么处理
  • MySQL_聚合函数分组查询
  • 【神经科学学习笔记】基于分层嵌套谱分割(Nested Spectral Partition)模型分析大脑网络整合与分离的学习总结
  • 无人机手势控制工作原理和算法!
  • 【笔记】开关电源变压器设计 - 工作磁通的选择原则
  • 机器学习中的两种主要思路:数据驱动与模型驱动
  • Stable Diffusion WebUI或ComfyUI下载不了huggingface?修改huggingface为国内镜像地址方法在这里
  • 计算用户订购率梧桐数据库和oracle数据库sql分析
  • 关于elementui el-radio 赋值问题
  • Redis 高并发分布式锁实战
  • 基于vue框架的的社区人员信息管理系统4x9bn(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 网络安全属性详解
  • 【Linux 28】应用层协议 - HTTPS