【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

Git 2.5 增加了工作树、改进了三角工作流、性能等诸多方面

  • 2015-08-15
  • 本文字数:1078 字

    阅读完需:约 4 分钟

Git2.5 是一个重要的功能版本,其中包括了worktrees、改进过的triangular workflows、更好的性能,以及无数的改进和修复。

工作树(Worktrees)

工作树是一个新的实验性功能,使开发者可以在同一Git 仓库中,创建额外的工作树(working trees)。这一功能旨在让开发者易于在两个分支上同时工作。在老的Git 版本中,为此只能切换分支,因为同一时间只能使用一个分支;或者创建一份本地的副本,但为了保持它们的一致性,通常需要额外的工作。

Git 提供了 worktree 命令,用于创建一个新的工作树:

$ git worktree add -b hotfix ../hotfix origin/master这将在指定的路径下(比如…/hotfix),创建一个新的目录,从 origin/master 产生一个新的分支,并将代码迁出到这个新目录中。

在某些场景中,使用第二个工作树会非常有用。比如, 运行当前版本的一个长时间的测试,同时工作在下一个版本的分支上;或者处理一个紧急修复而无需切换出当前分支。

工作树会与主干仓库链接起来,并且彼此互相感知。所以,不允许将同一分支迁出到两个不同的工作树中,以避免两个工作树无法同步。

三角工作流(Triangular workflows)

三角工作流通常用于协调团队的代码贡献者之间的工作。其基本思想是,贡献者拥有他们自己的 fork,当准备好共享时,他们要创建一个 pull 请求,该请求最终会被合并到主干仓库。

为了使三角工作流易于处理,Git2.5 增加了新的符号 @{push},表示当前分支要推送到远程跟踪分支,所处的当前值。这将被用于,比如,列出自上次推送以来,当前分支已经增加的全部提交:

$ git log @{push}或者,可以这样:

$ git log <a href="mailto:whizbang@%7Bpush">whizbang@{push</a>}使用任意分支。

性能

Git2.5 改进了大工作树和网络文件系统的性能:

  • git update-index --untracked-cache 将启用一个实验性功能,使 Git 只检查目录的修改时间,以提高git status的性能。
  • git index-pack 会减少对 packed-refs 目录的扫描次数,以提高网络文件系统的性能。
  • 使用网络文件系统,重用现有包对象,可以减少对utime的频繁调用。

除了以上介绍的功能,Git2.5 还改进了对 Perforce 仓库的支持,包括使用 git p4 检测文件类型、更好地处理分支,以及更多的改进和修复,可以在发版说明中了解这些。

查看英文原文: Git 2.5 Adds Worktrees, Improves Triangular Workflows, Performance, and More


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-08-15 18:393581

评论

发布
暂无评论
发现更多内容

亚马逊云科技 Community Builder 申请窗口开启

亚马逊云科技 (Amazon Web Services)

build 亚马逊云

毕业总结

Dean.Zhang

Python|语言元素、分支结构和循环结构

AXYZdong

7月月更

【愚公系列】2022年07月 Go教学课程 001-Go语言前提简介

愚公搬代码

7月月更

如何优雅的写 Controller 层代码?

程序知音

Java 编程 程序员 后端

微信小程序利用百度api达成植物识别

是乃德也是Ned

小程序开发 7月月更

Security RememberMe原理分析

急需上岸的小谢

7月月更

关于Flink框架窗口(window)函数最全解析

百思不得小赵

大数据 flink window 7月月更

关于我

不焦躁的程序员

体验居家办公完成项目有感 | 社区征文

恒山其若陋兮

居家办公 初夏征文

深刻理解 Linux 进程间七大通信(IPC)

C++后台开发

网络编程 linux开发 Linux服务器开发 C++开发 进程通信

网络编程常用的几种字符编码

HoneyMoose

相信自己,这次一把搞定JVM面试

慕枫技术笔记

JVM 7月月更

RPA进阶(二)Uipath应用实践

No Silver Bullet

RPA 7月月更 Uipath

OpenHarmony如何启动远程设备的FA

坚果

HarmonyOS OpenHarmony 7月月更 harmony

JDBC

武师叔

7月月更

王者荣耀商城异地多活架构设计

Fan

架构实战营

好玩的免费GM游戏整理汇总

echeverra

游戏

创业团队如何落地敏捷测试,提升质量效能?丨声网开发者创业讲堂 Vol.03

声网

创业讲堂 生态专栏

【LeetCode】统计值等于子树平均值的节点数Java题解

Albert

LeetCode 7月月更

使用BLoC 构建 Flutter的页面实例

岛上码农

flutter ios 安卓 移动端开发 7月月更

Modbus协议通信异常

神农写代码

远程办公对我们的各方面影响心得 | 社区征文

恒山其若陋兮

远程办公 初夏征文

Django 表单

海拥(haiyong.site)

django 7月月更

Mall电商实战项目全面升级!支持最新版SpringBoot,干掉循环依赖

程序知音

Java spring 编程 程序员 后端

hive数据导入:从查询数据导入

怀瑾握瑜的嘉与嘉

大数据 hive 7月月更

rxjs Observable 自定义 Operator 的开发技巧

Jerry Wang

typescript 响应式编程 angular RXJS 7月月更

记一次面试

SkyFire

面试 操作系统 底层 基础知识

TCP拥塞控制详解 | 2. 背景

俞凡

算法 网络 TCP拥塞控制

极简,利用Docker仅两行命令就能下载和编译OpenJDK11

程序员欣宸

Java Openjdk 7月月更

JavaScript 设计模式之策略模式

devpoint

JavaScript 设计模式 策略模式 7月月更

Git 2.5增加了工作树、改进了三角工作流、性能等诸多方面_DevOps & 平台工程_Sergio De Simone_InfoQ精选文章