如何在git中管理基于同一个模板的多个项目?

发布于 2024-10-18 00:09:01 字数 254 浏览 0 评论 0原文

我最近使用 Rails 编写了一个非常简单且通用的博客软件,目前我已将其托管在 github 上。

我对使用 git 比较陌生,但我想使用这个项目作为模板来设计另一个我需要类似功能的项目(能够发布内容、留下评论等)。我还希望能够将新项目中的更改推回到旧项目中,如果我发现错误或想出一个我想要推回的新的通用功能。

在 git 中处理此设置的正确方法是什么?我应该分叉我的原始版本还是克隆它并推送到新的存储库,然后将原始版本添加为第二个远程版本,或者完全是其他东西?

I recently wrote a very simplistic and generic piece of blogging software using Rails that I currently have hosted on github.

I'm relatively new to using git, but I would like to use this project as a template for designing another project where I need similar functionality (ability to post something, leave comments on it, etc). I also want the ability to push changes from my new project back into the old one, should I find a bug or come up with a new common piece of functionality that I want to push back.

What would be the correct way to handle this setup in git? Should I fork my original or clone it and push to a new repository then add the original as a second remote, or something else entirely?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

用心笑 2024-10-25 00:09:01

在这种情况下,克隆就是分叉,所以没有区别。在这两种情况下,您都会获得历史记录,您需要的一切(或者更确切地说,您指定/默认的内容)。

是的,您提到的方法就是可行的方法。

您可以稍后将各个变更集推送到原始存储库,以在那里应用更改。

Cloning is forking in that case, so there’s no difference. In both cases you get the history, all you need (or rather, what you specify/defaults).

The approach you mentioned would be the way to go, yes.

You can push individual changesets to your original repo later on to apply the changes there as well.

抚你发端 2024-10-25 00:09:01

我以前没有这样做过,但我曾经遇到过为版本控制存储库创建模板的情况。这就是我会做你想做的事。

  1. 通过克隆创建一小部分模板。将该集设置为从家庭外部只读。
  2. 要创建新项目,请从模板克隆。
  3. 当您找到要添加到模板或从模板中删除的内容时,请编辑模板的工作副本,然后推送。即使这意味着要进行两次更改,也要执行此操作:一次在项目中,一次在模板上。
  4. 从项目中提取以将其升级到模板的最新版本。

最后一个拉动很重要,因为当模板发生变化时,人们不会喜欢他们的项目发生变化。 升级应该是自愿的并由项目团队规划。

我不会为此使用多个遥控器。

I haven't done this before, but I've been in the situation of creating templates for version control repositories. This is how I would do what you want.

  1. Create a small family of templates by cloning. Make the set read-only from outside the family.
  2. To create a new project, clone from a template.
  3. When you find something that you want to add to or remove from a template, edit a working copy of the template, and push. Do this even if it means making the change twice: once in a project, and once on the template.
  4. Pull from projects to upgrade them to the latest version of their template.

The last pull is important because people won't appreciate having their projects change when their templates change. The upgrade should be voluntary and planned by the project's team.

I would not use multiple remotes for this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文