我有一个个人项目想要进行版本控制,但我不确定应该如何使用git来管理它。下面是文件夹结构的示例:
project
project/public/plugin1
project/public/plugin2
project/lib/plugin1
project/lib/plugin2
我本来打算为每个插件或模块创建单独的存储库,但这似乎有点棘手,因为并不是插件的所有文件都分组在同一个文件夹下。所以我需要跟踪这些目录作为插件1:
project/public/plugin1
project/lib/plugin1
同样,对于plugin2:
project/public/plugin2
project/lib/plugin2
公用文件夹中有css和js等文件,所以可以说更重要的文件是lib中的文件。我应该在该文件夹中设置存储库,然后尝试添加外部公用文件夹吗?但是git当然不会让我这么做。我已经从另一个问题中尝试过了:
git --work-tree=/ add /project/public/plugin1
我仍然会收到一个错误,说它在存储库之外。
由于这只是一个个人项目,我不需要访问或做任何远程操作,这有望消除一些复杂性。有什么正确的设置方法吗?谢谢
看起来是一个老问题,但对于任何关注这个问题的人来说,你想做的是使用git子模块。
- 为您的主项目和任何模块(库、插件、模块等)创建repo
-
您的结构可能会有所不同,但您希望在主存储库中创建子模块,以引用包含插件等的其他存储库。
# git submodule add git://path-to-your-repo.git modulename
-
请注意,您将内容拉入主repo,并将其附加到主repo的修订版中,该修订版允许您仅在子模块与主项目兼容时拉入子模块的特定版本。以下内容将子模块项目拉入主项目。
# git submodule update modulename
这只是一个高级概述。尝试阅读http://www.git-scm.com/book/en/Git-Tools-Submodules了解更多详细信息。