UGit是一款由腾讯自研的Git客户端,它深度支持Git的原生特性,并在此基础上进行了多项优化和创新,并提供了便捷的大文件管理、快速提交、工蜂锁、支持检出子目录等基础能力,以及加速服务、客户端钩子、定时任务等特色能力。
便捷的大文件管理
- 内置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仓库历史中标记版本为好的、坏的、标星等操作,方便版本回溯或版本信息共享。
5.24.2 版本更新说明:
改进
Monaco editor字体与选中问题
子窗口,MR的变更集支持只显示差异行
分支支持按提交时间排序
储藏中的文件下载支持选择其他目录
修复
编码格式为utf16的csv表格读取报错
mr评审时不显示添加评论的+
cherry-pick到远程功能无法使用