我可以使用分支机构来保存不同但相关的项目吗?

时间:2014-05-07 14:52:38

标签: git

我有5个项目从基础项目继承了一些代码。我想知道是否可以通过为该存储库中的每个项目创建一个分支来将它们全部放在一个存储库中。不确定分支是否可以这样使用。

最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

是的,你可以,但它通常并不比拥有多个存储库更好 - 这样做的唯一理由是,如果有外部压力阻止你创建更多的存储库。

那就是说,要使用的是git checkout --orphan NEWBRANCH。要使用它来创建一个包含完全不相关文件的分支(正如您所希望的那样),您应该在执行第一个命令之后但在执行任何其他操作之前删除所有先前跟踪的文件,例如根据联机帮助页中的建议使用顶级git rm -rf .

我强烈建议您在执行此操作之前检查是否有任何未提交的更改。

答案 1 :(得分:0)

分支用于为同一产品创建单独的开发“行” - 因此每个分支通常分别与其他分支或主分支共享大部分代码。 Git用于在这些之间快速切换,并更改本地工作目录中的文件版本。

一个常见的用例是创建一个新分支来处理新功能或修复错误。您从代码的当前(或最近)状态开始,然后进行更改并查看它是否有效。您可以在WIP分支中安全地执行此操作,同时保持主分支处于稳定状态,并在您弄乱某些内容时恢复到较旧的版本。一旦完成并对新代码感到满意(并对其进行了广泛测试),您就可以将该功能合并到主代码中。

一次只有一个分支结账,这意味着您只能打开和编辑该分支的文件。如果要更改另一个分支的文件,则需要隐藏更改并检出其他分支。如果您为不同但相关的项目使用多个分支,则意味着您永远无法同时访问所有代码 - 这没有任何意义。

如果要在存储库中组织子项目,请使用submodules。如果您的整个代码库相当小,只需将所有内容组织在一个干净的文件夹层次结构中,例如:

Repo
|__ Subproject 1
|   |__ lib
|   |__ exports
|   |__ src
|
|__ Subproject 2
|   |__ lib
|   |__ themes
|   |__ src
|   |__ utils
|
|__ ...