获取centos-git仓库源的相关说明

本指南详细介绍了如何获取、使用和贡献CentOS项目的源代码,包括使用Git进行版本控制、理解仓库结构、处理非文本源以及提交代码流程等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取centos的源(git)

Git版本控制软件是我们管理CentOS项目的首选。如果你是多个新手,有一些比较好的资源可供学习,包括入门指南http://git-scm.com/

centos 6 和centos 7 默认也都使用git来管理;

CentOS项目的源位于git.centos.org上,考虑到项目规范化的原因。通过各种努力,作为项目的一部分,也可以选择镜像的内容在其他地方比如Github。

Git.CentOS.Org 网站

项目
centos的网站git.centos.org上代码由git仓库,以及每个rpm组织而成。然后这些git 仓库被组织到“项目”中去。这里的主要项目为rpm/ 并且包括每个rpm的构建关系都包含在git仓库中。你可以在在这里浏览:https://git.centos.org/project/rpms

一般而言,每个团体都有他们自己的项目。并且允许自己在所属的域中添加非rpm的内容(如,test suites, or management interfaces, scripts, 等等)。每个团体一般而言都有管理自己项目的权限。

git 组织形式

git 仓库一般而言包含rpm的内容,由centos的每个发布版本的名称命名分支名称。比如,分支名为‘c7’的分支中包含centos linux 7的版本的内容。类似的c5 和 c6 这两个分支名称分别关联centos-5 和 centos-6. 通常情况下MASTER 或者 HEAD分支下没有什么内容,也许会有个readme文件指示您如何查找实际的代码。当你处理一个指定标签的部分时,我们建议您将代码提交到对应标签关联的分支上(或者centos.org上SIGs对应项目的名称)。这不仅方便别人浏览和跟踪他们所关心的历史提交,而且方便他们创建并切换特定的分支的发布树。

非文本源
我们只会讲文本源导入git仓库。所有的非文本源都会被提取并标记为哈希标记并上传到自己的后背缓存中https://git.centos.org/sources/ 。 非文本资源的全路径为https://git.centos.org/sources/

[user@host]$ git clone  https://git.centos.org/git/centos-git-common.git 

这个git仓库除了get_sources.sh脚本之外还包含一些其他东西。这个脚本在一个分支下运行时会解析非文本元数据文件,以及下载相关的文件,设置SOURCES/目录。你可能需要为这个脚本创建一个符号链接到~/bin(看一个示例)

示例
假设我们要处理centos 内核源码。

[user@host]$ git clone  https://git.centos.org/git/rpms/kernel.git 
cd kernel
# let's work on the centos7 kernel
[user@host]$ git checkout c7
[user@host]$ ~/bin/get_sources.sh
# switch to the local tree to edit
[user@host]$ git checkout -b my-kernel
# make edits to SPEC file, etc 
[user@host]$ git commit -m'my local changes' -a
# ensure we can create a srpm
[user@host]$ rpmbuild --nodeps --define "%_topdir `pwd`" -bs SPECS/kernel.spec
# if that works, 
[user@host]$ rpmbuild --define "%_topdir `pwd`" -ba SPECS/kernel.spec

贡献代码

我们通常喜欢使用git format-patch 创建补丁并发送到centos-devel邮件列表http://lists.centos.org/mailman/listinfo/centos-devel. 下面的示例配合来操作内核源码:

[user@host]$ git clone  https://git.centos.org/git/rpms/kernel.git 
cd kernel
# let's work on the centos7 kernel
[user@host]$ git checkout c7
[user@host]$ ~/bin/get_sources.sh
# switch to the local tree to edit
[user@host]$ git checkout -b my-kernel
# make edits to SPEC file, etc 
[user@host]$ git commit -m 'my local change' -a

重复这个过程对于所有你想要的提交,最好做一个完整的特性或更改在一个提交之前,多个特性分割成自己的commit。建议在你的提交信息里多使用动词描述你做了什么。如果是一个bug相关的报告,请使用# 格式作为参考。一旦所有的提交完成,您可以创建提交树到补丁文件:

[user@host]$ git format-patch c7

现在在你的工作目录下产生了一个命名格式为 0001-.patch and 0002-.patch 以及等等的补丁文件。将这些文件以附件的形式email给 centos-devel list邮件列表(不要包含邮件本身的东西)。内容包括你改变的东西,如果需要信息放在bugs.centos.org上面,可以抄送给http://lists.centos.org/mailman/listinfo/centos-devel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值