加载。。。
 
跳到主要内容

Git工作流

引言

本文解释了在Tiki GitLab存储库中进行贡献时应遵循的工作流程https://gitlab.com/tikiwiki/tiki网站主要步骤如下:

  1. 福克将Tiki GitLab主存储库添加到您的GitLab帐户
  2. 克隆将存储库分叉到您的计算机
  3. 结账计算机上正确的目标分支
  4. 创建新分支基于目标分支在您的计算机上
  5. 提交对本地克隆的更改
  6. 推动更改GitLab上的分叉存储库
  7. 创建新的合并请求从GitLab上的分叉存储库


下面将详细解释每个步骤。

1.将主要Tiki GitLab存储库转移到您的GitLab帐户

  1. 在创建帐户https://gitlab.com
  2. 转到Tiki项目页面,https://gitlab.com/tikiwiki/tiki网站
  3. 单击右上角的徽章
  4. 选择要放置叉子的目标群体。这将需要15分钟或更长时间。

将您的分叉镜像到Tiki主存储库

此时,您可能需要将分叉存储库镜像到主Tiki存储库,以便您的分叉将自动更新以提交到主存储库。为此,请执行以下操作:

  1. 转到分叉存储库的项目页面
  2. 在左侧菜单中,单击设置>存储库
  3. 找到“镜像存储库”子标题并单击“展开”按钮
  4. 类型https://gitlab.com/tikiwiki/tiki.git在“Git repository URL”输入字段中
  5. 确保“镜像方向”字段设置为“拉动”。这个选项仅在GitLab Premium上可用。
  6. 如果您通过创建单独的分支(如前所述)来清除fork中的更改在下面,然后选中“覆盖分支”。这个选项也仅在GitLab Premium上提供。
  7. 单击“镜像存储库”按钮

您的分叉存储库将至少每小时同步一次。分叉中的主Tiki分支不应偏离主Tiki存储库,否则镜像将失败,或者分叉上的分支将被覆盖(如果选择该选项)。这是保持主分支干净的另一个原因,每当进行下面第4条中所述的更改时,都要创建一个临时本地分支。

如果镜像停止工作(有时会发生这种情况),您可以按照以下步骤在开始编码之前手动同步手动将分叉同步到主Tiki存储库.

2.将分叉存储库克隆到您的计算机

在这一步中,您在GitLab上分叉到帐户的存储库将克隆到您的本地计算机上。

如何克隆的示例

下面的示例使用Git命令行,但它可以在IDE中嵌入的任何Git客户端中执行。阿尔索法比蒙特福斯科洛是本例中的GitLab用户,应该由分叉存储库的GitLab用户替换。只应用以下示例之一(或此处未显示的其他变体)。

克隆到新创建的名为tiki的目录
复制到剪贴板
$git克隆git@gitlab.com:fabimontefuscolo/tiki.git tiki
克隆到当前文件夹
复制到剪贴板
$git克隆git@gitlab.com:fabimontefuscolo/tiki.git。

由于Git将签出自Tiki开始以来的所有修订(超过70000次提交),这将需要相当长的时间,因此您可能希望按照以下示例限制此操作:

克隆到仅包含5个最新修订版的当前文件夹
复制到剪贴板
$git克隆git@gitlab.com:fabimontefuscolo/tiki.git--深度=5

3.在计算机上检查正确的目标分支

对于Tiki的每个主要版本,都有一个工作分支。例如,如果贡献是版本20.1的修复,那么贡献者必须签出分支20.x。

注意,与SVN不同,使用git签出分支并不意味着将该分支的所有tiki文件下载到单独的文件夹中。您克隆fork的文件夹仍将被使用,文件夹中的文件将更改以反映您已签出的分支。

在您的计算机上签出分支20.x
复制到剪贴板
$git结账20.x

4.在计算机上创建新分支

这是非常重要的一步。为该贡献创建另一个分支是一个好主意。根据前面的步骤,存储库现在设置为分支20.倍一个新的分支将从这里开始。假设分支名为固定左侧sidebar,以下命令将创建此分支。

创建本地分支
复制到剪贴板
$git结帐-b fixing-left-sidebar

如果由于某种原因,贡献者需要停止工作,为同一分支开始新的工作20.倍,他可以简单地提交或隐藏他的更改,切换回20.x并创建他需要的新贡献。例如,一项新的紧急任务似乎要解决一个安全问题:

创建第二个本地分支
复制到剪贴板
$git结账20.x$git checkout-b fixing-xss-issue-on-register表单

这样,贡献者可以有两个或更多不相关的工作(固定左侧sidebar修复-xss-issue-on-register格式)对于同一目标分支(20.倍). 它还将有助于合并请求创造。请参阅原子提交约定

与签出分支类似,您创建的新本地分支仍将驻留在您将分叉存储库克隆到的同一文件夹中。如上所述,创建本地分支是一种简单快速的方法,可以隔离不同的更改集,以便始终能够快速切换回干净的副本或在更改集之间切换。

5.提交对本地克隆的更改

应遵守提交消息的社区标准,请参阅:提交消息.

提交对本地克隆的更改
复制到剪贴板
$git添加tiki-file.php$git commit-m“[FIX]从注册表中删除错误字符以避免XSS攻击”

6.将更改推送到GitLab上的分叉存储库

为了有可用的更改来创建新的合并请求,需要将创建的分支推送到GitLab上的分叉存储库。

将更改推送到GitLab分叉
复制到剪贴板
$git push-u源修复-xss-issue-on-register-form

7.从GitLab上的分叉存储库创建新的合并请求

此步骤的目的是将推送到GitLab Tiki fork的更改合并到Tiki GitLab主存储库.

  1. 转到GitLab中的分叉存储库页面https://gitlab.com/fabimontefuscolo/tiki网址
  2. 然后把鼠标放在上面存储库然后单击分支机构进入
  3. 找到所需的分支(例如:fixing-xss-issue-on-register-form),然后单击合并请求按钮
  4. 在右上角,单击更改分支机构并选择正确的目标分支(例如:20.x)
  5. 写下详细的描述。包括在需要时重现错误或如何测试新功能的步骤

通过web界面检查合并请求

下面是一个示例:https://gitlab.com/tikiwiki/tiki/merge_requests/18/diffs
在此处查找您的:https://gitlab.com/tikiwiki/tiki/merge_requests/

确保您尊重原子提交约定.

如果出现问题,请快速修复或在评论中指出您稍后将要执行的操作,或者您需要帮助。

等待并互动

维修人员可能会要求您更改该拉取请求。在这种情况下,只需签出与合并请求相关的分支,添加新提交并再次推送它。

备份提交

首先检查是否有分支,如果不跟踪提交,则要在其上回传提交
检查
查看所有的分支
跟踪和克隆分支的提交
git远程添加--音轨25.x 25.x音轨https://gitlab.com/keutyche/tiki.git
git获取25.x轨道--深度=500
使用我们刚刚下载的元素移动到一个新分支
git checkout-b fixCorruption 25.x-track/25.x
做樱桃采摘
吉特·切里·皮克a12f4017cf6b13eefab06f8110ff5aa2516439d3
a12f4017cf6b13eefab06f8110ff5aa2516439d3这是合并后提交的哈希
然后进行推送并创建一个新的合并请求到所需的分支
git push-u源修复损坏

重要

  • 当命令类似git重置--硬git push--力如果需要,可能是工作流有问题,应该重新规划。
  • 回传后,请确保在描述或评论中引用原始MR。如果需要删除标记等,则指向它在原始MR上创建活动,以便我们知道它是后端口的。

手动将分叉同步到主Tiki存储库

镜像分叉的替代方案,如中所述将叉镜像到主Tiki存储库,是按如下方式手动同步:

  1. 使用命令将主Tiki存储库添加为远程
    复制到剪贴板
    git远程添加上游https://gitlab.com/tikiwiki/tiki.git

    注意,此步骤只需执行一次
  2. 使用以下命令将提交从主Tiki存储库应用到本地存储库git-pull上游主服务器--rebase
  3. 使用以下命令将这些提交从本地存储库应用到分叉存储库git推送源主机
    1. 如果在尝试将此推送到分叉存储库后收到错误消息,并且该存储库上没有其他活动(例如,它仅用于合并请求),请尝试git推送原始主机--force


您应该经常进行同步,尤其是在本地进行更改之前,以及在提交后但推送到分叉之前。

修复不同步分叉

有时,您的分叉存储库可能与主Tiki存储库和本地副本不同步。症状是您经常必须强制推送到分叉,或者其他作者不需要的其他提交被合并到从分叉到主存储库的合并请求中。按照以下步骤进行修复:

复制到剪贴板
git获取上游切换到主分支git reset—硬上游/主git推送原始主机--force


另请参阅

别名

关键词

以下是应作为Tiki开发中导航中心的关键字列表,应与文档关键字.

Tiki中的每个功能都有一个wiki页面,该页面重新组合了所有的bug、增强请求等。这多少是一种基于wiki的项目管理形式。您还可以通过将功能添加到您的个人资料。您也可以尝试动态过滤器.

无障碍(WAI和508)
会计
管理
阿贾克斯
文章&提交文件
导入链接
横幅
批次
大蓝色按钮音频/视频/聊天/屏幕共享
博客
书签
浏览器兼容性
日历
类别
聊天
注释
通讯中心
一致性
联系人通讯录
联系我们
内容模板
贡献
Cookie饼干
版权所有
信用
自定义主页(和组主页)
数据库MySQL-MyISAM
数据库MySQL-InnoDB
日期和时间
调试器控制台
图表
号码簿(共个超链接)
文档从Tiki链接到doc.Tiki.org(帮助系统)
文件
狗粮
绘制-被取代图表
动态内容
偏好
动态变量
外部身份验证
常见问题解答
特色链接
喂养(RSS)
文件库
论坛
友谊网(社区)
甘特图

群发邮件
帮助
历史
热字
HTML页面
国际18n(多语言,l10n,Babelfish)
图像库
进口-出口
安装
积分器
互操作性
用户间信息
InterTiki公司
jQuery(jQuery)
卡图拉视频管理
看板
因果报应
实时支持
日志(系统和操作)
失去编辑保护
邮寄
地图
菜单
元标记
缺少功能
可视化映射
手机
Mods(模式)
模块
MultiTiki公司
米提基
新闻稿
便条簿
操作系统独立性(非Linux、Windows/IIS、Mac、BSD)
有机基团(自我管理团队)
包装
付款
PDF格式
性能速度/加载/压缩/缓存
许可
投票
配置文件
测验
额定值
Realname(真实姓名)
报告
修订批准
调度程序
分数
搜索引擎优化(搜索引擎优化)
搜索
安全
语义的链接
分享
购物车
呐喊
站点标识
幻灯片
Smarty模板
社交网络
垃圾邮件防护(反比特CATPCHA)
拼写检查
电子表格
暂存和批准
统计信息
调查
语法突出显示(代码镜像)
表格分拣机
标签
任务
告诉朋友
条款和条件
主题
Tiki测试
联合时间表
令牌访问
工具栏(快速标签)
旅行
跟踪器
装饰
用户管理
用户文件
用户菜单
观看
网络邮件群发邮件
的集成
维基历史记录、页面重命名等
Wiki插件扩展基本语法
Wiki语法文本区域、解析器等
Wiki结构(书籍和目录)
工作区和观点
所见即所得
所见即所得
所见即所得
xml远程控制
XMPP公司




有用的工具