写点什么

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:393776

评论

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

Linux c 开发 - 内存管理器ptmalloc

赖猫

Linux 后台开发 内存管理

使用 Tye 辅助开发 k8s 应用竟如此简单(五)

newbe36524

微服务 netcore 全链路追踪 dotnet dapr

极客大学·产品经理训练营·第四章作业(第五周)

二大爷

极客大学产品经理训练营

【计算机内功修炼】九:程序员应如何理解协程

码农的荒岛求生

线程 操作系统 进程 协程

程序员的职业生涯与赛道选择

刘旭东

职业规划 码农 职业生涯

「产品经理训练营」第五周 作业记录

周玲

圈子创业

张老蔫

28天写作

深度集成 Flink: Apache Iceberg 0.11.0 最新功能解读

DataFunTalk

作业5

瑾瑾呀

产品经理训练营-第五周学习总结

月亮 😝

Elasticsearch Validate API

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 二月春节不断更

将上周写的用例画成流程图-第四章,第三讲

mas

【编程小白福利】办公自动化--从VBA到Python

IT蜗壳-Tango

七日更 28天写作 2月春节不断更 办公自动化 IT蜗壳

28天瞎写的第二百四十二天:正念冥想,我要想什么?

树上

冥想 28天写作 正念

翻译:《实用的Python编程》02_04_Sequences

codists

Python 人工智能 面试 数据结构与算法 序列

地表建筑物识别 Dayo2

IT蜗壳-Tango

七日更 28天写作 2月春节不断更

第十三周学习心得

cc

产品经理训练营 - 第五次作业

Jophie

产品经理训练营

一名青少年创客导师

厌倦你

编程

gRPC库C++构建及示例

长不胖的Garfield

c++ gRPC

处理 Exception 的几种实践,很优雅,被很多团队采纳!

xcbeyond

Java 异常处理 28天写作

改变认知,到写作方式的改变

数列科技杨德华

28天写作

2021金三银四必备:Java后端开发面试总结【25个技术专题】

比伯

Java 编程 架构 面试 计算机

框架效应如何影响人的决策?「Day 4」

道伟

心理 决策 28天写作

面试中经常问到的动态代理到底是什么

废材姑娘

Java

流程图

王一凡

AI数学基础之:奇异值和奇异值分解

程序那些事

人工智能 机器学习 程序那些事 矩阵运算

产品经理训练营-第五周作业

月亮 😝

第十三周命题作业

cc

保持前进

Nydia

悟透前端 | javascript数组之includes、reduce

devpoint

ES6 includes reduce

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