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

GitHub Draft Pull请求支持新的协作流程

GitHub已经引入了draft pull 请求来处理正在进行的工作场景,在这些场景中,你可能希望在代码准备好接受审查之前先打开PR或者与您的队友交流一下。

在创建新PR时,现在可以使用下拉菜单选择是创建普通的pull请求还是draft pull请求。draft pull请求与普通请求明显不同,它不能合并。你可以通过添加评论或要求其他团队成员查看并提供反馈来自由地修改draft PR。重要的是,draft PR不会每有一处修改就给所有的代码所有者发通知。这是draft PR能够实际用起来的一个关键特性,否则,那些不怎么需要关注的修改也会全给他们发通知。

当你完成一个draft PR时,可以简单地把它标记为“已准备好审查”,就能将其状态设置为正常的PR了,或者如果它没有什么进展,你可以将其废弃。

一场在Hacker News上的讨论为这个新特性提供了更多的背景和基本原理。许多用户表示,他们已经通过在PR名称中添加“WIP”或“DO NOT MERGE”来创建draft pull 请求了。这表明,draft PR是一种将某种常见但非正式的实践进行正式化的方法。

这些PR的作用是促进讨论,开始知识共享,并向其他开发人员更清楚地介绍自己的进展情况,而不是让他们更细致地检查分支。但又是我绝对不想合并的那个。

用户tedivm指出,在开发新特性时,不能将draft pull 请求视为特性分支的替代方法。因此,所有当前的CI/CD良好实践都不受draft PR的影响。实际上,他建议你仍然创建特性分支,并在这个分支不断提交,频繁地将其推送到你的存储库,但是你可以在任何时间点创建draft pull 请求,其主要目标有两个:展示特定特性的工作已经完成和干到什么地步了;提供一种简单的方法来检查所涉及的更改,并让人们尽早对代码本身进行注释。

用户gfosco特别强调了draft PR的价值,当你参与一些大型和复杂的项目时,你无权创建分支,因此只能在自己的fork上开展工作。在这种情况下,让其他项目成员检查你的fork或分支以获得反馈实际并非一个可行的方法。相反,创建一个draft PR可以无缝地协作。

其他评论指出,他们更喜欢通过其他方法(如wiki、文档或bug跟踪器)管理此类讨论。

GitHub的draft PR并不是首创,因为GitLab已经提供了一个类似的功能,叫做WIP合并请求。类似地,用于Android开发的原始版本管理系统Gerrit也已经提供了与draft pull 请求相同的概念。

查看英文原文:GitHub Draft Pull Requests Enable New Collaboration Workflows

相关文章:

  • 常用技巧
  • 原生js实现倒计时页面刷新不重新加载
  • word快捷键
  • 干货驾到:Redis5.0支持的新功能说明
  • ENVI图像几何校正
  • 彻底搞懂call、apply和bind
  • Vue对象变化检测
  • corejava基础知识(5)-集合
  • Docker最全教程之使用Docker搭建Java开发环境(十七)
  • 51Talk发布Q4财报:净营收2.981亿元,菲教1对1业务增长63%,将聚焦非一线城市
  • 分布式数据中的坑(一)Master-Slave架构
  • 人工智能实战第二次作业_李大
  • bat实现往hosts文件追加内容
  • 使用高德,百度地图时 填写的安全码SHA1获取方式
  • sqlzoo:5
  • 【剑指offer】让抽象问题具体化
  • CEF与代理
  • create-react-app项目添加less配置
  • gulp 教程
  • MySQL主从复制读写分离及奇怪的问题
  • PHP 7 修改了什么呢 -- 2
  • Redis字符串类型内部编码剖析
  • Ruby 2.x 源代码分析:扩展 概述
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Spring框架之我见(三)——IOC、AOP
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 后端_ThinkPHP5
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 巧用 TypeScript (一)
  • 如何编写一个可升级的智能合约
  • 如何使用 JavaScript 解析 URL
  • 小试R空间处理新库sf
  • 一个完整Java Web项目背后的密码
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​io --- 处理流的核心工具​
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #if和#ifdef区别
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $(selector).each()和$.each()的区别
  • (003)SlickEdit Unity的补全
  • (4)(4.6) Triducer
  • (day 12)JavaScript学习笔记(数组3)
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (转)程序员疫苗:代码注入
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • *1 计算机基础和操作系统基础及几大协议
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件