假设一个项目要使用 Component1 的旧冻结版本(例如修订版 Rev1),但使用所有其他文件的当前(主)版本。Component1 是同一存储库中的目录。
在这种情况下,GIT 的“整个文件集视图”似乎很尴尬。在 CVS 中,可以简单地在 Component1 上放置一个粘性标签以将这些文件冻结在 Rev1 处,甚至在那里分支,而所有其他文件将保留在 master 分支上。
该存储库用于其他需要最新 Component1 的项目,因此我们不能简单地将更新回滚到 Component1。
一种可能性是在 Rev1 创建一个分支,但是必须不断地合并来自 master 的所有其他文件的更新。此外,我必须非常小心这些合并,以免意外地将任何更新合并到 Component1,这在 GIT 中很容易做到,因为默认情况下,合并后提交是自动的。
将 Component1 映射为子模块将提供更多控制,但在这种情况下,所有文件都共享一个公共存储库。
“git checkout <rev> -- Component1”让我选择一个组件的特定版本,但我不能将它提交给 master,或者将一个分支合并到 master 进行这样的修订选择,否则它将暴露给所有其他项目。
任何其他建议将不胜感激。