腾讯居然还自研了 Git 客户端,也是没想到…
共 2195字,需浏览 5分钟
·
2024-10-24 16:10
点击上方蓝字,后台回复【面试】获取 2024面试题
UGit 是一款为腾讯内部研发环境特点而定制的 Git 客户端,旨在提高开发效率和团队协作的流畅性。
UGit 支持 macOS 10.11+、Apple Silicon 和 Win64 位系统。
主要特性
Ugit 提供便捷的大文件管理、快速提交、工蜂锁机制以及支持检出子目录等特性,极大提升了大型团队的协作效率和数据处理能力,是专业开发者不可或缺的工具。
便捷的大文件管理
内置 LFS 模版,腾讯众多大型项目 LFS 管理经验沉淀,尤其是游戏项目。
支持对仓库或工作区进行大文件分析,以便于更好的配置 Git LFS 规则。
提交时,可根据工蜂单文件大小限制,提示用户将超限文件纳入 Git LFS 管理。
支持单仓库或多仓库清理 LFS 缓存,快速解决磁盘空间不足问题。
支持使用 UGit 本地 LFS Cache 加速服务,体验极致的下载速度。
支持超大文件 (>4GB) 的无损下载。
快速提交
原生 Git 提交流程,如果远程有新的提交,Git 会强制要求先更新再提交,在一个大型项目中,提交流程会因为远程频繁变更而不停中断,影响工作效率。
UGit 的快速提交,可以实现只要用户提交的文件其他人没修改,可以在不更新情况下直接完成提交,不会因远程频繁变更而中断提交流程,让大型团队协作更加流畅。
工蜂锁
工蜂锁是针对游戏项目中存在大量二进制文件协作场景而设计的锁方案,解决了 Git LFS Lock 的稳定性和性能问题。
支持对文件、目录进行加解锁。同时也可以支持全分支锁,即加锁一个对象时,同时锁定所有分支上的该对象。
支持项目设置强制加锁工作流,要求用户必须先加锁才能提交。
支持推送变更到远程后,自动对推送内容进行解锁。
也可以配置路径的锁白名单,限定配置的目录只允许特定用户可以加解锁。
支持检出子目录
基础能力
极简操作,类似于 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 仓库历史中标记版本为好的、坏的、标星等操作,方便版本回溯或版本信息共享;
-
https://ugit.qq.com/zh/index.html -
https://docs.qq.com/doc/DTEpoYWVwV1dhV0Rz
来源:程序猿DD