linux - 在开源开发中,补丁和 git 提交有什么区别?

标签 linux git open-source patch

据我所知,补丁是一个描述某些文件之间差异的文件。这似乎是一种传达源代码更改的巧妙方法。

但是 git 提交可以做到这一点,而且还可以做更多的事情。当您可以执行 pull 请求(以及所有相关的元信息、git 机制和自动化)时,为什么还要通过电子邮件发送补丁文件?

本质上,为什么/何时使用其中一种而不是另一种?

最佳答案

好问题。

我们假设每个人都在使用 Git。那为什么还要使用补丁呢?

使用提交的一些缺点:

  • 你必须在某个地方有一个公共(public)存储库才能进行通信 与人
    • 使用 git format-patchgit send-email 你只需要 配置为代表您发送电子邮件的电子邮件提供商
  • 电子邮件是一种最常见的恶魔b
    • 这是有争议的!——必须设置您的电子邮件发送 基于补丁的工作流程(补丁嵌入在电子邮件中) 可能会很困难,甚至一些非常有经验的开发人员(他们 使用这种开发方式多年或数十年)认为 它已经过时了
    • 这意味着围绕补丁的工具需要了解 与学习所有 API 相比,建立完善的电子邮件格式 不同的 Git 锻造
  • 如果您通过电子邮件将补丁发送到公共(public)邮件列表,您可以收集 围绕该电子邮件线程上的补丁进行讨论;你可以讨论 直接在电子邮件中显示单独的行和代码块
    • 您可以将 Git forges 与电子邮件一起使用,但是您可能会 必须不断地说“查看我的 GitHub 上的提交”之类的话, “查看我的 GitLab 上的提交”;每个人可能都有不同的 伪造他们只是链接而不是讨论代码 直接在电子邮件中

敏捷性

如果你——熟练——我无法对这一点进行个人评论——,你可以去 从定期交谈到立即提出改变建议。为了 示例:[1]

> So we should do such-and-such.

Makes sense to me.  How about this patch?

-- >8 --
Subject: [IA64] Put ia64 config files on the Uwe Kleine-König diet

arch/arm config files were slimmed down using a python script

注释

  1. 取自man git format-patch

关于linux - 在开源开发中,补丁和 git 提交有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26083885/

相关文章:

linux - 使用 srun 设置 sbatch 环境变量

linux - 性能:内核模块符号未显示在分析中

git - 重新创建git标签后出现“tag already exists in the remote"错误

python - python cgi脚本中的线程错误

conntrack delete 不会停止运行大文件的副本

git - 为什么复制笔记时存储库大小会翻倍?

java - 防止从 Git 存储库 pull 时需要 "add external jars"

c++ - C 或 C++ 中简单的键值平面文件数据库

java - 用于在服务器端生成网页缩略图的开源 Java 库

c# - 如何确定是否存在用于特定目的的开源软件?