问题描述
我目前正在清理我的开发环境并寻找一种通过 git 的概念来组织我的代码的好方法。由于太长的原因无法解释,我的项目结构如下所示:
它们都是单个(大)文件,我无法将它们移动到各自的子文件夹中,因为加载它们的软件会明智地加载文件夹(非递归),并且管理 30 个一直在更改的子文件夹非常麻烦。它们都是相互独立的。 我倾向于处理我目前喜欢的任何文件,因此大多数文件总是处于中间增量状态。
以下是我对 git 提供的每个结构的问题(我知道的):
- 整个文件夹作为 repo,每个文件的分支:我必须每天切换分支 100 次,而且更改前后的结果很难比较。除了在我更新的文件中,分支总是彼此落后。合并很麻烦。
- 每个文件的分支,布局为工作树:加载它们的软件仍然需要跟踪大量文件夹(繁琐),最重要的是,自每个分支以来显示大量重复项还包含所有其他文件
- 每个文件作为 git 子模块:每个文件都有自己的 git 存储库,还有很多子文件夹。
是否有任何正确的方法来分别跟踪每个文件?我可以将每个工作增量复制到一个单独的存储库 - 我现在就这样做,大多数文件最终都无法进行实验并被丢弃。所以我有两个文件夹,一个文件夹有 8 个工作增量,一个文件夹有 30 个随机实验。带有工作增量的文件夹是一个常规的 repo,所以我真的有间隔,巨大的提交。 我想过将所有 git 子模块放在一个文件夹中,每个 gitignore 都忽略除我处理的文件之外的所有内容,但这可能真的丑陋和愚蠢。我觉得必须有一种更简洁的方法来做到这一点。
解决方法
rcs
仍然非常适合单文件项目。 Git 不适合那些需要与其他同类同在一个目录中的人,这就是为什么使用 rcs 跟踪我 bin
目录中转移的 oneliners 的原因。我知道的最接近 Git 的方法是拥有一个包含指向各个 repo 工作树文件的符号链接的目录,哎呀。