小言_互联网的博客

Git笔记(22) 项目贡献要点

386人阅读  评论(0)


1. 项目影响因素

因为 Git 非常灵活,人们可以通过不同的方式来一起工作
所以描述应该如何贡献并不是非常准确——每一个项目都有一点儿不同
影响因素包括

  • 活跃贡献者的数量
  • 使用的工作流程
  • 提交权限
  • 可能包含的外部贡献方法

1.1. 活跃贡献者的数量

积极地向这个项目贡献代码的用户数量以及他们的贡献频率

在许多情况下,可能会有两三个开发者一天提交几次,对于不活跃的项目可能更少
对于大一些的公司或项目,开发者的数量可能会是上千,每天都有成百上千次提交
这很重要,因为随着开发者越来越多
在确保自己的代码能干净地应用或轻松地合并时会遇到更多问题:

  • 提交的改动可能表现为过时的
  • 正在做改动或者等待改动 被批准应用时 被合并入的工作 严重损坏

如何保证代码始终是最新的,并且提交始终是有效的?


1.2. 使用的工作流程

是中心化的吗,即每一个开发者都对主线代码有相同的写入权限?
项目是否有一个检查所有补丁的维护者或整合者?
是否所有的补丁是同行评审后批准的?
是否参与了那个过程?
是否存在副官系统,必须先将自己的工作提交到上面?


1.3. 提交权限

是否有项目的写权限会使向项目贡献所需的流程有极大的不同
如果没有写权限,项目会选择何种方式接受贡献的工作?
是否甚至有一个如何贡献的规范?

所有这些问题都会影响实际如何向一个项目贡献
以及对你来说哪些工作流程更适合或者可用


2. 提交准则

Git 项目提供了一个文档,其中列举了关于创建提交到提交补丁的若干好的提示
可以在 Git 源代码 中的 Documentation/SubmittingPatches 文件中阅读它


2.1. 检查空白错误

首先,不会想要把空白错误提交上去
根据 git help diff 的描述,结合下面给出的图片
空白错误是指行尾的空格、Tab 制表符,和行首空格后跟 Tab 制表符的行为

Git 提供了一个简单的方式来检查这点
在提交前,运行 git diff --check,它将会找到可能的空白错误并列出来

这样可以知道提交中是否包含空白问题


2.2. 独立变更

接下来,尝试让 每一个提交 成为 一个逻辑上的独立变更集
如果可以,尝试让改动可以理解:
不要在整个周末编码解决五个问题,然后在周一时将它们提交为一个巨大的提交
即使在周末期间无法提交,在周一时使用暂存区域将工作最少拆分为每个问题一个提交
并且为每一个提交附带一个有用的信息


2.3. 提交信息

有一个创建优质提交信息的习惯会使 Git 的使用与协作容易的多
一般情况下,信息应当以少于 50 个字符(25个汉字)的单行开始且简要地描述变更
接着是一个空白行,再接着是一个更详细的解释
Git 项目要求一个更详细的解释,包括做改动的动机和它的实现与之前行为的对比

在这些信息中使用 现在时态祈使语气 也是一个好想法
换句话说,使用命令
使用 “Add tests for” 而不是 “I added tests for” 或 “Adding tests for
这里是一份最初由 Tim Pope 写的模板:

修改的摘要(50 个字符或更少)

如果必要的话,加入更详细的解释文字。在
大概 72 个字符的时候换行。在某些情形下,
第一行被当作一封电子邮件的标题,剩下的
文本作为正文。分隔摘要与正文的空行是
必须的(除非你完全省略正文);如果你将
两者混在一起,那么类似变基等工具无法
正常工作。

空行接着更进一步的段落。

  - 句号也是可以的。

  - 项目符号可以使用典型的连字符或星号
    前面一个空格,之间用空行隔开,
    但是可以依据不同的惯例有所不同。

出于简洁性的原因这里不会有像这样漂亮格式的信息
相反,平时还是经常使用 -m 选项的 git commit
就如:“老师的话可以听,样子不可以学”


参考: git
以上内容,均根据git官网介绍删减、添加和修改组成


相关推荐:

Git笔记(21) 分布式工作流程
Git笔记(20) 配置服务器
Git笔记(19) 生成SSH公钥
Git笔记(18) 搭建服务器Git
Git笔记(17) 协议


谢谢


转载:https://blog.csdn.net/qq_32618327/article/details/104525841
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场