Amazon Best VPN GoSearch

OnWorks 网站图标

perlgit - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 perlgit

这是命令 perlgit,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


perlgit - 有关 git 和 Perl 存储库的详细信息

商品描述


本文档提供了有关使用 git 开发 Perl 的详细信息。 如果你只是对
正在开发一个快速补丁,请先查看 perlhack。 本文档适用于以下人士
是 Perl 的常规贡献者,包括那些对 git 存储库具有写入权限的人。

克隆 存储库


Perl 的所有源代码都集中保存在 Git 存储库中 perl5.git.perl.org.

您可以通过运行以下命令制作存储库的只读克隆:

% git 克隆 git://perl5.git.perl.org/perl.git perl

这使用 git 协议(端口 9418)。

如果由于防火墙原因不能使用git协议,也可以通过http克隆,
虽然这要慢得多:

% git 克隆 http://perl5.git.perl.org/perl.git perl的

工作 存储库


更改到存储库目录后,您可以检查它。 克隆后
存储库将包含一个本地分支,它也将是当前分支,
如星号所示。

% git 分支
* 流血

使用 -a 开关切换到“branch”也将显示远程跟踪分支
库:

% git 分支 -a
* 流血
起源/头部
起源/头骨
...

以“origin”开头的分支对应于您从中克隆的“git remote”
(被命名为“起源”)。 遥控器上的每个分支都将被这些精确跟踪
分支。 你永远不应该在这些远程跟踪分支上工作。 你只做
在当地分公司工作。 本地分支可以配置为从一个
指定的远程跟踪分支。 这是默认分支“blead”的情况,它
将被配置为从远程跟踪分支“origin/blead”合并。

你可以看到最近的提交:

% git 日志

并从存储库中提取新更改,并更新您的本地存储库(必须是干净的
第一)

% git 拉

假设我们在 pull 后立即在分支“blead”上,这个命令会更多
或更少,相当于:

% git 获取
% git 合并原点/bread

事实上,如果你想在不接触你的工作的情况下更新你的本地存储库
你做的目录:

% git 获取

如果你想为所有定义的遥控器更新你的远程跟踪分支
同时你可以做

% git 远程更新

最后两个命令都不会更新您的工作目录,但是两者都会
更新存储库中的远程跟踪分支。

要创建远程分支的本地分支:

% git checkout -b maint-5.10 origin/maint-5.10

切换回出血:

% git checkout 流血

查找 输出 您的 状态
您将使用的最常见的 git 命令可能是

% git 状态

此命令将生成存储库当前状态的描述作为输出,
包括修改过的文件和未忽略的未跟踪文件,此外它还将显示
诸如为下一次提交准备了哪些文件之类的东西,通常还有一些有用的
有关如何改变事物的信息。 例如以下内容:

$ git 状态
# 在分支出血
# 你的分支比 'origin/blead' 领先 1 次提交。
#
# 要提交的更改:
# (使用"git reset HEAD ...”取消暂存)
#
# 修改:pod/perlgit.pod
#
# 已更改但未更新:
#(使用“git add ...”更新将提交的内容)
#
# 修改:pod/perlgit.pod
#
# 未跟踪的文件:
#(使用“git add ...”以包含在将要提交的内容中)
#
# 故意的.untracked

这表明该文档发生了更改以供提交,并且有
工作目录中的进一步更改尚未上演。 这也表明有一个
工作目录中未跟踪的文件,如您所见,显示了如何更改所有
这。 它还表明在工作分支“blead”上有一个提交,它没有
被推送到“原点”遥控器了。 注意:这个输出也是你所看到的
模板,如果您没有向“git commit”提供消息。

打补丁 工作流程
首先,请阅读 perlhack 以获取有关破解 Perl 核心的详细信息。 该文件涵盖
关于如何创建一个好的补丁的许多细节。

如果您已经拥有 Perl 存储库,则应确保您在 流血 分支,
并且您的存储库是最新的:

% git checkout 流血
% git 拉

最好针对最新的 bleed 版本打补丁,因为这是新的
除了关键错误修复之外的所有更改都会进行开发。 关键错误修复补丁
应向相关主干支行提出,或附注
指示应该应用修复的所有分支。

现在我们拥有最新的一切,我们需要为这些创建一个临时的新分支
更改并切换到它:

% git checkout -b 橙色

这是的缩写形式

% git 分支橙色
% git checkout 橙色

创建主题分支使维护人员更容易重新定位或合并回
主人为更线性的历史而流泪。 如果您不在主题分支上工作
维护人员必须手动将更改挑选到 bleed 上,然后才能应用它们。

那会让你在 perl5-porters 上被骂,所以不要那样做。 真棒。

然后进行更改。 例如,如果 Leon Brocard 将他的名字更改为 Orange Brocard,
我们应该在 AUTHORS 文件中更改他的名字:

% perl -pi -e 's{Leon Brocard}{Orange Brocard}' 作者

您可以看到更改了哪些文件:

% git 状态
# 在分支橙色
# 要提交的更改:
# (使用"git reset HEAD ...”取消暂存)
#
# 修改:作者
#

你可以看到变化:

% git 差异
diff --git a/作者 b/作者
index 293dd70..722c93e 100644
--- 一个/作者
+++ b/作者
@@ -541,7 +541,7 @@ 拉尔斯赫金[电子邮件保护]>
拉兹洛·莫尔纳[电子邮件保护]>
莱夫·胡恩[电子邮件保护]>
连·约翰逊[电子邮件保护]>
- 莱昂布罗卡[电子邮件保护]>
+橙色布卡[电子邮件保护]>
彼得斯[电子邮件保护]>
莱斯利宾克斯[电子邮件保护]>
林肯·D·斯坦[电子邮件保护]>

现在在本地提交您的更改:

% git commit -a -m '将 Leon Brocard 重命名为 Orange Brocard'
创建提交 6196c1d:将 Leon Brocard 重命名为 Orange Brocard
1 个文件更改,1 个插入 (+),1 个删除 (-)

“-a”选项用于包含 git 跟踪的所有已更改的文件。 如果在
这一次,你只想提交一些你已经处理过的文件,你可以省略
“-a”并使用命令“git add 文件 ...“ 在进行提交之前。
"git add --interactive" 允许你甚至只提交文件的一部分而不是全部
他们的变化。

“-m”选项用于指定提交消息。 如果省略它,git 会打开一个
文本编辑器,供您以交互方式撰写消息。 这在更改时很有用
比此处给出的示例更复杂,并且取决于编辑器,要知道
提交消息的第一行不超过 50 个字符的法定最大值。

一旦你写完提交信息并退出编辑器,git 会写
您对磁盘的更改并告诉您如下内容:

创建提交 daf8e63:解释 git 状态和有关遥控器的内容
1 个文件更改,83 个插入 (+),3 个删除 (-)

如果您重新运行“git status”,您应该会看到如下内容:

% git 状态
# 在分支出血
# 你的分支比 'origin/blead' 领先 2 次提交。
#
# 未跟踪的文件:
#(使用“git add ...”以包含在将要提交的内容中)
#
# 故意的.untracked
没有添加任何提交但存在未跟踪的文件(使用“git add”来跟踪)

如有疑问,在做任何其他事情之前,请检查您的状态并仔细阅读,很多
问题由 git status 输出直接回答。

您可以使用以下命令检查您的最后一次提交:

% git 显示头

如果您对描述或补丁本身不满意,您可以修复它
通过再次编辑文件然后发出:

% git commit -a --amend

现在您应该为所有本地更改创建一个补丁文件:

% git format-patch -M blead..
0001-重命名-Leon-Brocard-to-Orange-Brocard.patch

或者对于很多更改,例如来自主题分支:

% git format-patch --stdout -M blead.. > 主题分支变化.patch

您现在应该发送电子邮件至 [电子邮件保护] <站长:[电子邮件保护]> 与
更改的说明,并将此补丁文件作为附件包含在内。 此外
被 RT 跟踪,发送到 perlbug 的邮件将自动转发到 perl5-porters
(手动审核,所以请耐心等待)。 您应该只将补丁发送到
[电子邮件保护] <站长:[电子邮件保护]> 如果补丁没有准备好直接
被应用,但用于讨论。

请不要使用 git 发送电子邮件(1) 发送您的补丁。 有关更多信息,请参阅发送补丁电子邮件
信息。

如果你想删除你的临时分支,你可以这样做:

% git checkout 流血
% git 分支 -d 橙色
错误:分支“orange”不是您当前 HEAD 的祖先。
如果您确定要删除它,请运行“git branch -D orange”。
% git 分支 -D 橙色
删除分支橙色。

提交中 您的 变化
假设您想将所做的所有更改作为单个原子单元提交,
运行以下命令:

% git 提交 -a

(“-a”告诉 git 将您更改的每个文件添加到此提交中。新文件不是
当您使用“commit -a”时自动添加到您的提交中 如果您想添加文件或
提交一些更改,但不是所有更改,请查看“git add”文档。)

Git 将启动您最喜欢的文本编辑器,以便您可以为
你的改变。 请参阅 perlhack 中的“提交消息”以获取有关什么是好的信息的更多信息
提交消息。

一旦你写完提交信息并退出编辑器,git 会写
您对磁盘的更改并告诉您如下内容:

创建提交 daf8e63:解释 git 状态和有关遥控器的内容
1 个文件更改,83 个插入 (+),3 个删除 (-)

如果您重新运行“git status”,您应该会看到如下内容:

% git 状态
# 在分支出血
# 你的分支比 'origin/blead' 领先 2 次提交。
#
# 未跟踪的文件:
#(使用“git add ...”以包含在将要提交的内容中)
#
# 故意的.untracked
没有添加任何提交但存在未跟踪的文件(使用“git add”来跟踪)

如有疑问,在做任何其他事情之前,请检查您的状态并仔细阅读,很多
问题由 git status 输出直接回答。

发出 补丁 电子邮件
生成补丁后,您应该将其发送至 [电子邮件保护] (如讨论
上一节)以普通邮件客户端作为附件,以及说明
的补丁。

必须 而不去 使用 git 发送电子邮件(1) 发送生成的补丁 git-格式补丁(1)。 该
RT售票系统住在后面 [电子邮件保护] 不尊重的内联内容
电子邮件,向 RT 发送内嵌补丁可保证您的补丁将被销毁。

有人可能会从 RT 下载你的补丁,这会导致主题(第一行
提交消息)被省略。 有关示例,请参阅 RT #74192 并提交 a4583001。
或者,有人可以在您的补丁到达他们的邮箱后从 RT 应用您的补丁,通过
哪个时间 RT 将修改消息的内联内容。 见 RT #74532 和
提交 f9bcfeac 作为这种故障​​模式的一个坏例子。

A 注意 on 衍生
请注意,发行版中的许多文件都是派生的——避免修补它们,因为
git 不会看到对它们的更改,并且构建过程将覆盖它们。 修补
原件代替。 大多数实用程序(如 perldoc)都属于这一类,即补丁
实用程序/ perldoc.PL 而非 实用程序/ perldoc. 同样,不要为文件创建补丁
从他们在 $install_root/lib 中找到的副本中的 $src_root/ext 下。 如果您不确定
在构建源时可能已复制的文件的正确位置
分发,请参阅“清单”。

清洁 a 加工 目录
命令“git clean”可以使用不同的参数来代替“make
干净的”。

要将您的工作目录重置为原始状态,您可以执行以下操作:

% 混帐清理 -dxf

但是,请注意这将删除所有未跟踪的内容。 您可以使用

% 混帐清理 -Xf

删除所有忽略的未跟踪文件,例如构建和测试副产品,但保留任何
单独手动创建的文件。

如果你只想取消一些未提交的编辑,你可以使用“git checkout”并给它
要还原的文件列表,或“git checkout -f”以还原所有文件。

如果你想取消一次或多次提交,你可以使用“git reset”。

一分为二
“git”提供了一种内置方法来确定应该归咎于哪个提交引入了
给定的错误。 “git bisect”对历史进行二分搜索以定位第一个失败
犯罪。 它快速、强大且灵活,但需要一些设置和自动化
进程需要一个辅助shell脚本。

核心提供了一个包装程序, 移植/bisect.pl,它试图尽可能地简化
尽可能使二等分像运行 Perl one-liner 一样简单。 例如,如果你
想知道这何时成为错误:

perl -e '我的 $a := 2'

你只需运行这个:

.../Porting/bisect.pl -e '我的 $a := 2;'

使用“bisect.pl”,通过一个命令(没有其他文件)很容易找到

· 哪个提交导致此示例代码中断?

· 哪个提交导致此示例代码开始工作?

· 哪个提交添加了第一个文件来匹配这个正则表达式?

· 哪个提交删除了最后一个文件来匹配这个正则表达式?

通常不需要知道使用哪个版本的 perl 作为开始和结束修订,
as 二等分.pl 自动搜索以找到测试的最早稳定版本
案件通过。 运行“Porting/bisect.pl --help”以获得完整的文档,包括如何
设置“配置”和构建时间选项。

如果您需要更多的灵活性 移植/bisect.pl 必须提供,你需要运行
“git bisect”你自己。 使用“git bisect run”来自动化构建最有用
和 perl 修订版的测试。 为此,您需要一个用于“git”的 shell 脚本来调用
测试特定的修订版。 一个示例脚本是 移植/bisect-example.sh,你
应该复制 学校以外 存储库的,因为二等分过程会将状态重置为
在运行时清理结帐。 以下说明假定您将其复制为 〜/运行
然后根据需要对其进行编辑。

您首先进入二等分模式:

% git 平分开始

例如,如果错误存在于“HEAD”但不在 5.10.0 中,“git”将了解
当您输入时:

% git 平分坏
% git bisect 好 perl-5.10.0
一分为二:此后还有 853 个修订版待测试

这导致检查“HEAD”和“perl-5.10.0”之间的中间提交。 你可以
然后使用以下命令运行二等分过程:

% git 平分运行 〜/运行

当第一个错误提交被隔离时,“git bisect”会告诉你:

ca4cfd28534303b82a216cfe83a1c80cbc3b9dc5 is first bad commit
commit ca4cfd28534303b82a216cfe83a1c80cbc3b9dc5
作者:戴夫·米切尔[电子邮件保护]>
日期:9 年 14 月 56 日星期六 23:2008:0000 +XNUMX

[perl #49472] 属性 + 未知错误
...

平分运行成功

您可以使用“git bisect log”和“git bisect visual”查看二等分过程。
“git bisect reset”会让你退出二等分模式。

请注意,第一个“好”状态必须是第一个“坏”状态的祖先。 如果
你想搜索那个提交 解决 一些错误,你必须否定你的测试用例
(即如果正常则以 1 退出,否则以 0 退出)并仍将下限标记为“好”,并且
上部为“坏”。 “第一次错误提交”必须被理解为“第一次提交
问题在哪里解决”。

“git help bisect”有更多关于如何调整二进制搜索的信息。

话题 分支机构 重写 历史
个人提交者应该在下面创建主题分支 你的名字/一些描述性名称.
其他提交者应该在对主题分支进行任何更改之前与主题分支的创建者核对
它。

创建适用于所有 git 版本的远程主题分支的最简单方法是
将当前 head 作为远程上的新分支推送,然后在本地查看:

$ branch="$你的名字/$some_descriptive_name"
$ git push 原点 HEAD:$branch
$ git checkout -b $branch origin/$branch

git 1.7 或更新版本的用户可以用更明显的方式做到这一点:

$ branch="$你的名字/$some_descriptive_name"
$ git checkout -b $分支
$ git push origin -u $branch

如果你不是创造者 你的名字/一些描述性名称,你有时可能会发现
原作者编辑了分支的历史记录。 有很多很好的理由
为了这。 有时,作者可能只是将分支重新建立到更新的源上
观点。 有时,作者可能会在他们的早期提交中发现错误
想在合并分支流血之前修复。

当前,主存储库配置为禁止非快进合并。 这
意味着其中的分支不能作为一个步骤重新定位和推送。

您将被允许重新设置或修改推送分支的历史记录的唯一方法
是将其删除并将其作为同名的新分支推送。 请慎重考虑
关于这样做。 顺序重命名分支可能会更好
与您一起工作的其他人更容易将他们的本地更改挑选到新的
版本。 (XXX:需要解释)。

如果要重新设置个人主题分支,则必须删除现有主题
分支并推送为它的新版本。 您可以通过以下公式执行此操作(请参阅
git push 文档中有关“refspec”的解释以获取详细信息)之后
重新定位您的分支:

# 第一次变基
$ git checkout $用户/$主题
$ git获取
$ git rebase origin/bread

# 然后“删除并推送”
$ git 推送源:$用户/$主题
$ git push origin $user/$topic

注意: 禁止在存储库级别删除任何“主要”分支。
那是匹配“m!^(blead|maint|perl)!”的任何分支。 任何这样做的尝试都会导致
git 产生这样的错误:

$ git push origin:blead
*** 禁止删除本仓库中的blead/maint 分支
错误:钩子/更新退出,错误代码为 1
错误:hook 拒绝更新 refs/heads/blead
到 ssh://perl5.git.perl.org/perl
! [远程拒绝] bleed(钩拒绝)
错误:未能将一些引用推送到“ssh://perl5.git.perl.org/perl”

作为政策问题,我们这样做 而不去 编辑 blead 和 maint-* 分支的历史记录。 如果一个
打字错误(或更糟)潜入到 bleed 或 maint-* 的提交中,我们将在另一个提交中修复它。
这些分支上允许的唯一更新类型是“快进”,其中所有
历史被保留下来。

规范 perl.git 存储库中的注释标签永远不会被删除或修改。
在做之前仔细考虑是否要将本地标签推送到 perl.git
所以。 (不允许推送未注释的标签。)

嫁接
perl 历史记录包含一个在转换中没有发现的错误:合并是
记录在 blead 和 maint-5.10 之间的历史记录中,实际上没有发生合并。 到期的
对于 git 的性质,现在无法在公共存储库中修复。 你可以
通过将以下行添加到您的“.git/info/grafts”,在本地删除此错误合并
文件:

296f12bbbbaa06de9be9d09d3dcf8f4528898a49 434946e0cb7a32589ed92d18008aaa1d88515930

如果在该区域进行任何一分为二,则拥有这条移植线尤为重要
有问题的“合并”。

您是我们的客人? 店铺访问 TO GIT 存储库


获得写入权限后,您需要将远程源的 URL 修改为
启用推送。 编辑 .git/配置混帐配置(1) 命令:

% git config remote.origin.url ssh://perl5.git.perl.org/perl.git

您还可以设置您的用户名和电子邮件地址。 大多数人在全球范围内都这样做过一次
在他们的 〜/ .gitconfig 通过做类似的事情:

% git config --global user.name "AEvar Arnfjoer` Bjarmason"
% git config --全局用户.email [电子邮件保护]

但是,如果您只想为 perl 覆盖它,请执行类似
跟进 perl的:

% git 配置用户.email [电子邮件保护]

也可以将“origin”保留为 git 远程,并添加一个新的远程用于 ssh 访问:

% git 远程添加骆驼 perl5.git.perl.org:/perl.git

这允许您通过从“来源”中拉取来更新本地存储库,这会更快
并且不需要您进行身份验证,也不需要使用“骆驼”将您的更改推回
偏僻的:

% git 取骆驼
% git 推骆驼

“fetch”命令只是更新“camel”引用,因为对象本身应该有
从“原点”拉出时被提取。

接受 a 补丁
如果您收到了使用上述部分生成的补丁文件,您应该尝试一下
补丁。

首先,我们需要为这些更改创建一个临时的新分支并切换到它:

% git checkout -b 实验

由“git format-patch”格式化的补丁与“git am”一起应用:

% git am 0001-重命名-Leon-Brocard-to-Orange-Brocard.patch
将重命名 Leon Brocard 应用于 Orange Brocard

如果只提供原始差异,也可以使用以下两步过程:

% git 应用 bugfix.diff
% git commit -a -m "一些修复" --author="那个家伙[电子邮件保护]>"

现在我们可以检查更改:

% git 显示头
commit b1b3dab48344cff6de4087efca3dbd63548ab5e2
添加一名作者[电子邮件保护]>
日期:19 年 17 月 02 日星期五 59:2008:0000 +XNUMX

将 Leon Brocard 重命名为 Orange Brocard

diff --git a/作者 b/作者
index 293dd70..722c93e 100644
--- 一个/作者
+++ b/作者
@@ -541,7 +541,7 @@ 拉尔斯赫金[电子邮件保护]>
拉兹洛·莫尔纳[电子邮件保护]>
莱夫·胡恩[电子邮件保护]>
连·约翰逊[电子邮件保护]>
- 莱昂布罗卡[电子邮件保护]>
+橙色布卡[电子邮件保护]>
彼得斯[电子邮件保护]>
莱斯利宾克斯[电子邮件保护]>
林肯·D·斯坦[电子邮件保护]>

如果你是 Perl 的提交者并且你认为补丁很好,那么你可以将它合并到
blead 然后将其推送到主存储库:

% git checkout 流血
% git merge 实验
% git push origin 出血

如果你想删除你的临时分支,你可以这样做:

% git checkout 流血
% git branch -d 实验
错误:“实验性”分支不是您当前 HEAD 的祖先。
如果您确定要删除它,请运行“git branch -D Experimental”。
% git branch -D 实验
删除分支实验。

提交中 流血
'blead' 分支将成为 Perl 的下一个生产版本。

推前 任何 局部改变流血,这是非常重要的,你做一些
事情,以免其他提交者拿着干草叉和火把追赶你:

· 确保你有一个好的提交信息。 请参阅 perlhack 中的“提交消息”
细节。

· 运行测试套件。 您可能不会认为一个错字修复会破坏测试文件。
你错了。 这是不运行套件导致问题的示例。 一个
提交的补丁为现有的 .t 文件添加了一些测试。 它不能
可能会影响其他任何东西,因此无需测试超出单个受影响的 .t,
对? 但是,提交者的电子邮件地址自上次提交以来已更改
提交,这导致其他测试失败。 运行中给出的测试目标
下一个项目会发现这个问题。

· 如果你不运行完整的测试套件,至少“make test_porting”。 这将运行
基本的健全性检查。 要查看哪些健全性检查,请查看 吨/移植.

· 如果您做出任何影响具有不同代码的 miniperl 或核心例程的更改
miniperl 的路径,一定要运行“make minitest”。 这将捕捉到的问题
即使是完整的测试套件也无法捕获,因为它在下面运行了一个测试子集
miniperl 而不是 perl。

On 合并 变基
推送到“blead”分支的简单一次性提交应该是适用的简单提交
干净地。 换句话说,你应该确保你的工作是针对当前的
blead 的位置,以便您可以在不合并的情况下推回主存储库。

有时,在您构建或测试更改时,blead 会移动。 当这
发生时,您的推送将被拒绝,并显示如下消息:

到 ssh://perl5.git.perl.org/perl.git
! [拒绝] 流血 -> 流血(非快进)
错误:未能将一些引用推送到“ssh://perl5.git.perl.org/perl.git”
为防止您丢失历史记录,非快进更新被拒绝
在再次推送之前合并远程更改(例如“git pull”)。 见
有关详细信息,请参阅“git push --help”的“关于快进”部分。

发生这种情况时,您可以 变基 你反对布莱德新职位的工作,比如
这(假设您的主存储库的远程是“p5p”):

$ git 获取 p5p
$ git rebase p5p/bread

你会看到你的提交被重新应用,然后你就可以安全地推送了。
有关变基的更多信息可以在文档中找到 git 变基(1)
命令。

对于只有一起才有意义的更大的提交集,或者这将受益于
集合目的的摘要,您应该使用合并提交。 你应该完成你的工作
在主题分支上,您应该定期针对 blead 进行重新设置,以确保您的
代码不会被 blead 移动破坏。 完成工作后,请执行
最终变基和测试。 线性历史是每次提交都会丢失的东西
流血,但最后的 rebase 使历史再次线性化,使未来更容易
维护人员查看发生了什么。 Rebase 如下(假设你的工作是在
分支“提交者/一些工作”):

$ git checkout 提交者/somework
$ git rebase 出血

然后你可以像这样将它合并到 master 中:

$ git checkout 出血
$ git merge --no-ff --no-commit 提交者/somework
$ git 提交 -a

上面的开关值得解释。 “--no-ff”表示即使你所有的工作
可以线性地应用于 blead,仍然应该准备合并提交。 这
确保您的所有工作都显示为一个分支,并合并所有提交
通过合并提交进入主流。

“--no-commit”意味着合并提交将是 准备 但不 提交. 提交
然后在您运行下一个命令时实际执行,这将打开您的编辑器
来描述提交。 如果没有“--no-commit”,提交将几乎没有
有用的消息,这将大大降低合并提交作为
作品描述的占位符。

在描述合并提交时,解释分支的目的,并记住
这个描述可能会被最终的发布工程师在审查时使用
下一个 perldelta 文档。

提交中 保养 版本
维护版本只应更改以添加关键错误修复,请参阅 perlpolicy。

要提交 perl 的维护版本,您需要创建一个本地跟踪分支:

% git checkout --track -b maint-5.005 origin/maint-5.005

这将创建一个名为“maint-5.005”的本地分支,它跟踪远程分支
“起源/维护-5.005”。 然后你可以像以前一样拉、提交、合并和推送。

您还可以通过使用“git
cherry-pick”命令。建议使用 -x 按顺序选择“git cherry-pick”
在新提交消息中记录原始提交的 SHA1。

在将任何更改推送到维护版本之前,请确保您已满足以下步骤
上面的“承诺流血”。

合并 a 通过 GitHub上
虽然我们不鼓励通过 GitHub 提交补丁,但这种情况仍然会发生。
这是从 GitHub 存储库合并补丁的指南。

% git 远程添加 avar git://github.com/avar/perl.git
% git 获取 avar

现在您可以看到 branch 和 blead 之间的差异:

% git diff avar/橙色

你可以看到提交:

% git log avar/橙色

如果您批准特定的提交,您可以挑选它:

% git cherry-pick 0c24b290ae02b2ab3304f51d5e11e85eb3659eae

或者,如果您喜欢这一切,您可以合并整个分支:

% git 合并 avar/orange

然后推回存储库:

% git push origin 出血

运用 a 抽我 测试 变化
有时更改会影响您无法在直接运行的操作系统上测试的代码路径
对您可用,最好让其他操作系统上的用户在此之前测试更改
你犯了流血。

幸运的是,有一种方法可以让您的更改在各种操作系统上进行冒烟测试:将其推送到
“smoke-me”分支并等待某些自动烟雾测试器报告结果
他们的操作系统。

这样做的过程大致如下(以tonyc的smoke-
我的分支名为 win32stat):

首先,创建一个本地分支并切换到它:

% git checkout -b win32stat

进行一些更改,构建 perl 并测试您的更改,然后将它们提交到您的本地
分支。 然后将你的本地分支推送到远程的smoke-me 分支:

% git Push origin win32stat:smoke-me/tonyc/win32stat

现在您可以切换回本地出血:

% git checkout 流血

并在等待一两天的同时继续处理其他事情,密切关注
你的smoke-me分支的结果报告在
<http://perl.develop-help.com/?b=smoke-me/tonyc/win32state>。

如果一切顺利,请更新您的 blead 分支:

% git 拉

然后再次检查您的smoke-me 分支并将其重新建立在bleed 上:

% git rebase blead win32stat

现在切换回 bleed 并将您的smoke-me 分支合并到其中:

% git checkout 流血
% git 合并 win32stat

如前所述,如果你的smoke-me 分支有很多变化,那么你应该
准备一个合并提交,通过使用
下面的命令而不是上面的最后一个命令:

% git 合并 win32stat --no-ff --no-commit

您现在应该构建 perl 并最后一次测试您的(合并的)更改(最好运行
整个测试套件,但失败至少运行 t/移植/*.t 测试)之前推送
你的变化像往常一样:

% git push origin 出血

最后,你应该删除远程smoke-me分支:

% git 推送来源:smoke-me/tonyc/win32stat

(很可能会产生这样的警告,可以忽略:

远程:致命:模棱两可的参数'refs/heads/smoke-me/tonyc/win32stat':
未知版本或路径不在工作树中。
远程:使用“--”将路径与修订分开

) 然后删除您的本地分支:

% git 分支 -d win32stat

A 注意 on 骆驼 单峰驼
提交者可以通过 SSH 访问为“perl5.git.perl.org”提供服务的两台服务器。 一个是
“perl5.git.perl.org”本身(骆驼),这是“主”存储库。 第二个是
“users.perl5.git.perl.org”(单峰驼),可用于一般测试和
发展。 Dromedary 每隔几分钟从骆驼同步 git 树,你不应该
推到那里。 两台机器在 /srv/CPAN 中也有一个完整的 CPAN 镜像,请使用这个。 到
与公众共享文件,单峰骆驼为您服务 〜/ public_html / as
"http://users.perl5.git.perl.org/~yourlogin/"

这些主机对外部有相当严格的防火墙。 传出,只有 rsync、ssh 和 git
被允许。 对于 http 和 ftp,您可以使用 http://webproxy:3128 作为代理。 传入,
防火墙尝试检测攻击并阻止具有可疑活动的 IP 地址。 这
有时(但很少)有误报,您可能会被阻止。 最快的
解除封锁的方法是通知管理员。

这两个盒子由booking.com 拥有、托管和运营。 你可以到达
irc.perl.org 上 #p5p 中的系统管理员或通过邮件发送至“[电子邮件保护]".

使用 onworks.net 服务在线使用 perlgit


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。