我正在创建一个种子项目(我自己),我将用它作为多个其他项目的基础。在寻找最佳实践后,我找到了一些有用的策略。但我不相信使用哪种策略,我觉得我没有完整的解决方案;一个工作流程,解释满足我的需求所需的所有步骤。
到目前为止,我找到了两个主要策略。
git clone -o seed ssh://git@github.com/user/seed.git new_project_name
-o种子将原点重命名为seed
,仍可用于从中提取更改。
创建新的空GitHub new_project_name仓库。
然后
git remote add origin ssh://git@github.com/user/new_project_name.git
(What is the proper git workflow for basing a project off a 'seed' repo?)
git clone https://github.com/username/seed.git
/ N
git branch myproject
git checkout myproject
您的所有更改都将独立于种子项目。如果你想要及时了解种子项目的所在,你需要做的就是:
git checkout master
git pull
现在你的所有文件都将消失,你会看到最新的东西是什么?#39; seed'好像。如果您希望项目得到他们的更改,您可以这样做:
git checkout myproject
git merge master
(How to organise git repos when building on a seed project)
如果我使用多个遥控器'策略我假设我将无法对源自种子项目的代码进行任何更改,因为种子项目将获得与我从(?)推送的项目相关的所有代码。
如果我使用'多个分支'策略我假设我必须将所有项目推送到我的种子仓库作为不同的分支(?)。如果我想更改源自种子项目的任何代码,我总是可以签出并更改主服务器,然后将更改合并到分支。
我觉得我想在这两种策略之间使用某种混合(或完全不同的东西)。因为我立即遇到了我想要在每个项目中更改readme.md,package.json,gulpfile等的问题(基于种子项目)。如果我然后git pull
对种子项目进行了任何改进,我认为这些文件的更改将被覆盖,或者至少存在处理持续合并问题的巨大风险。我应该采用什么策略来使这些潜在的混乱问题尽可能简单地处理?
(我也在考虑分叉,但除非所有存储库只是同一软件的替代版本(?),并且您希望一个人负责合并到主版本(?),它似乎并不相关。 )。)