在 git 和 git-hub 中处理两个独立但非常相似的代码库的最佳方法是什么?
背景
我有一个用于小型 shell 脚本项目的 git 存储库。它只有 2 或 3 个代码文件,而且我经常在一个文件中工作。尽管我最初制作该项目是为了服务于我的特定目标,但我编写它是为了对其他人更普遍有用。我编写通用用例版本,然后根据我的特定目标对其进行修改。在特定的版本中,我可能会修改变量、输入密码、切换某些代码的顺序、取出 for 循环……等等。
我试过什么
我尝试了两种不同的方法,但都没有我认为的那样最佳:
- 两个单独的回购
- 问题:代码修改为一个,不能轻易和有选择地合并到另一个
- 一个仓库中有两个分支
- 问题:分支最终会重新合并在一起。我的意思并不是要将它们完全合并在一起,而是有选择地合并部分代码。
- 问题:我发现当尝试在分支之间使用合并命令时,很容易混淆哪个分支中的哪些代码被合并。我以某种方式在它们两个之间合并了完全无意的代码,并且在我查看两个分支中文件的内容之前,没有任何迹象表明合并不正确
我还看到了如何将两个单独但相似的代码库合并到一个 SVN 代表中?那是关于SVN的。因为我不知道 SVN,所以我很难跟上。我认为这是一个不同的问题,因为他并没有试图公开该代码的一个版本。
我想解决的用例
具体来说,当以下情况出现时,问题就会暴露出来:
- 评论同步 - 我正在准备我的专业版本,并注意到我可以在行尾添加解释性评论。我添加了它,但评论现在不在通用版本中。
- 我不想共享的东西 - 我正在准备我的专用版本,我添加了密码或更改操作的完成顺序。我不希望这些更改进入通用版本。
- 同一个文件 - 上述两个更改通常在同一个文件中,这使得很难将内容合并在一起。有交互式合并,但我不知道是否可以在单个文件中完成交互。
- 通用 -> 专业 - 我或其他人可能会更新通用版本以包含对我的专业版本也有用的新内容或评论。我想将这些从通用 -> 专业中引入,而不会弄乱专业版本中的任何其他代码差异。
Git 与 Github
大多数情况下,我的问题是想知道如何在 git 的范围内执行此操作。但是,它也可能对如何与 github 交互产生影响。我的通用版本在 github 上。专用版本不应该在 github 上。我认为如果我小心的话,我上面的分支方法并没有推动两个分支......但我总是不确定。无论哪种方式,解决方案都应该允许有一个公开的版本,以及一个仅保存在本地的版本……即使它有点复杂或需要小心。