教程的版本控制设置

2023-12-03

我正在尝试为与编程相关的教程设置版本控制。事实证明这是有问题的,因为有两种不同的历史:

本教程提供了项目构建的历史记录,每个章节都提供了该项目的历史记录,读者将看到这些历史记录。如果我从未打算再次更改教程中已编写的章节,我可以将每个章节作为标签存储在项目历史记录中。

然后还有教程本身的历史(不仅是文本,还有我对项目假装历史的研究)。如果我发现一个错误,我需要返回并在第 1 章中修复,那么在末尾添加新的提交是行不通的,因为我想更改项目在该阶段“出现”的方式,即在项目历史记录中插入提交并将章节的标签向前移动。

到目前为止,我已经考虑了几种可能性 - 使用 git 分支,其中每一章都是一个分支,每当我进行更改时,它就会重新定位到前一章的前面,我插入补丁的善变补丁队列,或者构建教程围绕一组我可以放入子存储库的模块。

我想我应该问是否有人有此类事情的经验,以及哪些解决方案有效,哪些无效。


我宁愿将每个章节隔离在其自己的分支中,而不是因为对早期章节的后期修复而重写所有项目的历史,HEAD代表每个章节的当前状态。
组装所有教程更多的是一个发布管理问题(通过从 Git Repo 中提取相关信息来部署教程)。

然后您可以开发您的教程来实现类似的目标git 沉浸式.

(注:如果这更像是您想要的电子书,那么git 抄写员这将是一种更有趣的版本控制方式。)


The OP rusky在评论中添加:

我正在尝试对章节的示例代码进行版本控制,其中每一章的代码都基于前一章的代码

这意味着您添加的任何错误修复都需要报告给代表其他章节的其他分支,在这种情况下请参阅:

  • 在 Git 中,如何将错误修复的提交应用到其他较新的分支?(避免挑选樱桃,这通常是一个坏主意)
  • 使用主题分支
  • rebase --onto解决方案
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

教程的版本控制设置 的相关文章

  • “解决方案的源代码控制之间似乎存在差异......”

    我们在 Visual Studio 2005 和 TFS 中经常遇到此错误 任何人都可以帮助我们查明此消息的原因吗 完整的消息是 解决方案的来源之间似乎存在差异 控制有关某些项目的信息以及 项目文件 为了解决这个差异 有必要检查 项目文件并
  • 没有分支的 svn 存储库签出

    我必须检查一个有 8 个分支的存储库 我不会下载每个分支大小 400MB 只需检查文件夹结构和主干即可 repo trunk repo tags
  • 使用 ssh-keygen 创建 SSH 密钥不会创建 .ssh 文件夹

    我正在尝试使用 msysgit 创建我的公共 私有 rsa 密钥对 我运行这个命令 ssh keygen C email protected cdn cgi l email protection t rsa 一切看起来都很好 我收到消息了
  • 在 Subversion 中,如何取消劫持文件?

    目前 我的团队有一组不应该受到版本控制的文件 但它们确实受到了版本控制 我想从我们的 subversion 存储库中删除它们 并允许每个人保留他们的本地版本 实现这一目标的最佳方法是什么 删除文件会将它们从存储库以及每个人的本地文件系统中删
  • GIT 或 SVN 或...适用于前端开发人员

    我最近开始将一些项目导入到工作中的 Subversion 存储库中 在接下来的几周内 我希望团队中的每个人都能负责自己的源代码控制管理 我选择 SVN 而不是 GIT 的原因是我想要everyone团队中的人员 包括设计师 前端人员 集成商
  • PyCharm和源代码控制,.idea目录,提交还是不提交,这就是问题

    我开始了新的PyCharm http www jetbrains com pycharm 项目并希望对其进行版本控制水银 http mercurial selenic com 项目目录中有一个 idea 目录 其中包含以下文件 以及我对是否
  • 在 Xcode 9 上切换分支

    我无法找到使用 Xcode 9 切换分支的菜单项 工作副本菜单似乎已经消失 有任何想法吗 Xcode 9 Xcode 8 Press 2 to open the new Source Control Navigator 右键单击master
  • 在数据库中存储差异的最紧凑方式是什么?

    我想实现类似于维基媒体的修订历史的东西 最好使用的 PHP 函数 库 扩展 算法是什么 我希望差异尽可能紧凑 但我很高兴只能显示每个修订版与其同级修订版之间的差异 并且一次只能回滚一个修订版 在某些情况下 只有几个字符可能会发生变化 而在其
  • 如何使用 LibGit2Sharp 从 Git 获取更改?

    下面的代码将 Git url 克隆到测试目录 var url http abc 555 com team project 555 git var path E temp 555 var credential new Credentials
  • 在 MySQL 数据库上使用版本控制 (Git)

    我是一名 WordPress 设计师 开发人员 越来越多地使用版本控制 特别是 Git 尽管我确实在某些项目中使用 SVN 我目前正在使用 Beanstalk 作为我的远程仓库 将所有 WordPress 文件添加到我的存储库中是没有问题的
  • GitLab 是否通过 git-annex 或其他方式支持大文件?

    我运行一个 GitLab 实例 并希望允许我的用户上传几乎任何大小的文件 众所周知 git 在处理大文件方面仍然存在问题 我知道通过将文件存储在其他地方并仅对元数据进行版本控制来规避此问题的方法 例如git annex git media
  • 是什么让 DVCS 中的合并变得如此简单?

    我读于乔尔谈软件 http www joelonsoftware com items 2010 03 17 html 通过分布式版本控制 分布式部分实际上不是 最有趣的部分 有趣的是 这些 系统根据变化来思考 而不是 就版本而言 and a
  • 使用 git 组织多个项目的最佳方式是什么

    我有 5 10 个独立项目 希望使用 Git 将其置于版本控制之下 组织项目 存储库的最佳方式是什么 每个项目使用一个存储库 对我的所有工作使用一个存储库 并为每个项目使用子目录 或者完全不同的东西 什么对你最有效 为什么 我肯定会说每个项
  • 执行 bzr commit --local、bzr pull、bzr commit 后,一些代码丢失

    我团队中的一个开发人员一直在使用绑定到服务器的分支 IE 仅使用签出 更新和提交 但也经常在提交时使用 local 标志 然后批量提交到服务器 她最近遇到了一种情况 她丢失了一些本地提交 并且无法在存储库或本地代码中找到它们 她怀疑这是因为
  • Git推送大文件时远端意外挂断

    当我尝试推送到我的 bitbucket 存储库时 出现以下错误 事实上 在 GitHub 中也是如此 数物体 48 完成 增量压缩最多使用 2 个线程 压缩对象 100 38 38 完成 写入对象 100 48 48 1 95 MiB 38
  • 如何获取第一次提交的 Git diff?

    我创建了一个存储库 在其中创建了一个文件 在文件中放入了一些内容 然后提交了该文件 现在 我想查看该提交的差异 理想情况下应该显示添加的文件以及添加到其中的行 然而 git diff HEAD HEAD回报fatal ambiguous a
  • Windows Workflow Foundation 4 (WF4) 延迟

    我正在与 Visual Studio 2010 的候选版本一起使用 Wf4 编写一个用于批准资源请求的新工作流程 在我的工作流程中 如果请求未获得批准 我希望请求在几天后过期 我们在 WF 3 5 Visual Studio 2008 中通
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发
  • Rollup & Plugins 能否将大多数遗留库转换为 es6 模块?

    我们团队的项目内部完全是es6模块 ESM 但是有依赖项还没有制作esm版本 我们创建了各种解决方案 但它们绝对不是现代的主流解决方案 我指的是将旧格式转换为 esm 的 Rollup 工作流程 或同等学历 那么问题来了 现在是否有 Rol
  • 如何在 SVN 中分支单个文件?

    分支的颠覆概念似乎专注于创建整个存储库的 不稳定 分支 并在其上进行开发 是否有一种机制可以创建单个文件的分支 对于用例 请考虑具有多个特定于平台的源代码 c 实现的通用头文件 h 这种类型的分支是永久性的 所有这些分支都将不断发展 偶尔会

随机推荐

  • IMFSinkWriter无法导出mp4的大尺寸视频

    我的 Windows MFC 应用程序具有导出视频文件的功能 并且它可以选择编码格式 通过WMV or MP4 和框架尺寸 但是 不幸的是当我尝试导出时MP4每次都设置大帧大小的文件MF E INVALIDMEDIATYPE发生了 简而言之
  • 正则表达式:按逗号分割,但排除括号和引号内的逗号(单引号和双引号)

    我有一根绳子 5 5 5 C A B A B B A A B C A B 我想用逗号分割它 但需要排除括号和引号内的逗号 单引号和双引号 像这样 5 5 5 C A B A B B A A B C A B 使用java正则表达式如何实现这一
  • AWS:将 Cognito 授权用户限制为特定 Lambda 函数

    我正在使用 AWS 并且有以下设置 UserPool API网关 Lambda函数 API 网关使用 UserPool 授权者来保护 lambda 函数 到目前为止 这是有效的 现在我想将每个 lambda 函数限制为特定的用户组 因此 我
  • Apple 的静默推送通知可以在后台启动我的应用程序吗?

    根据苹果的文档 我可以通过添加来注册静默通知 content available 1键值对aps有效负载字典 我希望我的应用程序在无声通知到达时在后台唤醒 我设置App downloads content in response to pu
  • 在 Azure ML 上安装附加 R 包

    我正在执行以下步骤将 R Hash 2 2 6 zip 包安装到 Azure ML 将 zip 文件作为数据集上传 创建一个新实验并添加 执行 R 脚本 进行实验 拖放 zip 文件数据集进行实验 将步骤3中的数据集连接到步骤2的 执行R脚
  • 泽西岛和 HK2 服务定位器

    我正在尝试在 Application 构造函数 从 ResourceConfig 继承的东西 中初始化 Jersey 应用程序中的一些组件 看起来像这样 public Application Context ServletContext c
  • 如何将数据从 Webform 页面发布到 HTTPHandler.ashx 文件?

    我有一个 Web 应用程序项目来支持到供应商产品后端的文件传输操作 它由 2 个 HTTPHandler 文件组成 在带有 IIS 6 0 的 Win2003 服务器上编译成网站 上传处理程序 ashx 下载处理程序 ashx 这些文件从公
  • pyCuda,发送多个单变量参数的问题

    我这里有一个 pycuda 程序 它从命令行读取图像并保存反转颜色的版本 import pycuda autoinit import pycuda driver as device from pycuda compiler import S
  • mem_fun和bind1st问题

    我有以下课程 class A public ctr and etc A clone B container 现在 我有一个vector
  • Firestore,如何构建“likedBy”查询

    我在思考如何最好地构建我的 非常简单的 Firestore 应用程序时遇到了一些困难 我有一组这样的用户 users A123 name Adam B234 name Bella C345 name Charlie 每个用户都可以 喜欢 或
  • 使两个角圆化和两个直切而不是颤振中的曲线

    我怎样才能在颤振中制作下面的瓷砖状设计 两侧有一点弯曲 两侧的其余部分是直线切割的柔和曲线 我可以制作两个圆角和两个非圆角 但无法制作如下所示的一个 任何人都知道如何制作这样的瓷砖 我已经使用了 RoundRect ClipRRect 和
  • 如何在 C# 中向 UserControl 添加事件?

    我有一个包含 3 个标签的 UserControl 我想为其添加一个事件 该事件在标签之一的文本更改时发生 我正在使用 Visual Studio 2010 首先 您需要在类中声明事件 以及您的方法和构造函数 public event Ev
  • 创建 8 位图像

    我正在尝试创建具有纯背景色的 8 位图像 看起来应该非常简单 但文件上的详细信息将其列为 32 位颜色深度 我缺少什么 public void CreateImage var bmpOut new Bitmap 300 300 var g
  • SyntaxError:创建 virtualenv 时语法无效

    我想为 python 2 7 创建一个 virtualenv 我使用的是 3 7 我以管理员身份运行 cmd 在 Windows 10 上 C WINDOWS system32 gt virtualenv p C Python27 pyth
  • 从 Kafka 进行流聚合时运行“死锁”

    几天前我发布了另一个类似的问题 如何在启动Spark Streaming进程时加载历史数据 并计算运行聚合 我现在至少设法得到了一个 有效 的解决方案 这意味着该过程本身似乎可以正常工作 但是 由于我是 Spark 的初学者 我似乎错过了一
  • 为什么可以从 double 到 float 隐式转换?

    在 C 中我们可以写类似的东西 float f 3 55 这是一个合法的语句 而实数的类型是 double 我们将该 double 存储为浮点数 它本质上意味着将 8 个字节存储为 4 个字节 可能会丢失数据 我的问题是当我写的时候 lon
  • 重写历史记录以撤消对 git 中当前分支上的文件的所有更改

    假设我有一个修改六个文件的功能分支 该分支上的大部分提交都涉及file py 我最终意识到有一种可能更好的方法来实现此功能而无需触摸file py根本不 有没有办法调整我的分支上的所有提交以不触及该文件 我觉得应该有某种交互式变基技巧可以轻
  • shell_exec() 和 exec() 在 PHP 中不起作用

    像许多其他人一样 我对 PHP 中的 shell exec 函数有疑问 我已禁用安全模式并从 php ini 中删除了disabled functions 如果我从终端 php print php 运行 php 脚本 它工作正常 但如果我从
  • 在 MATLAB 中使用 i 和 j 作为变量

    i and j是非常流行的变量名称 例如 参见这个问题 and this one 例如 在循环中 for i 1 10 Do something end 作为矩阵的索引 mat i j 4 Why 不应该它们可以用作 MATLAB 中的变量
  • 教程的版本控制设置

    我正在尝试为与编程相关的教程设置版本控制 事实证明这是有问题的 因为有两种不同的历史 本教程提供了项目构建的历史记录 每个章节都提供了该项目的历史记录 读者将看到这些历史记录 如果我从未打算再次更改教程中已编写的章节 我可以将每个章节作为标