什么是在git和github中处理两个不同但非常相似代码库的最佳方法?
背景
我有一个用于小型shell脚本项目的git存储库。它只有2或3个代码文件,我通常只在单个文件中工作。虽然我最初创建这个项目是为了满足我的特定目标,但我写它以使其对他人更普遍有用。我编写通用用例版本,然后修改它以适用于我的特定目标。在特定版本中,我可能会修改变量、放入密码、交换一些代码的顺序、去掉for循环等等。
我尝试过的方法
我尝试了两种不同的方法,但都没有像我认为的那样优化:
- 两个单独的代码库
- 问题:在一个代码库中修改的代码不能轻松且有选择性地合并到另一个代码库中。
- 一个代码库中的两个分支
- 问题:这些分支最终需要合并。我并不想完全将它们合并在一起,而是有选择性地合并部分代码。
- 问题:当尝试在分支之间使用合并命令时,很容易混淆合并哪个分支的哪些代码。我不知何故在它们两个之间合并了完全意外的代码,并且没有任何指示表明错误的合并,直到我查看了两个分支文件的内容。
我还看到了关于 SVN 的 如何将两个单独但相似的代码库合并为一个 SVN 代码库? ,但这对我来说难以理解,因为我不了解 SVN。我认为这是一个不同的问题,因为他并不打算公开此代码的一个版本。
我希望解决的用例
具体问题出现在以下情况下:
- 评论同步 - 我正在准备我的专门版本,并注意到我可以在一行的末尾添加一个解释性注释。我添加了它,但是这个注释现在不在通用版本中。
- 我不想分享的东西 - 我正在准备我的专门版本,我添加了密码或更改了操作顺序。我不希望这些更改传递到通用版本。
- 同一文件 - 上述两个更改通常会在同一个文件中,这使得将它们合并在一起变得困难。有交互式合并,但我不知道交互是否可以在单个文件中完成。
- 通用 -> 专用 - 我或其他人可能会更新通用版本,以具有对于专用版本也有用的新内容或注释。我想从通用 -> 专用将它们带过来,而不会影响专用版本中的任何其他代码差异。