submodule删除 - 从一个git仓库迁移到另外一个git仓库




嵌套的git仓库? (4)

我可以嵌套git存储库吗? 我有:

 /project_root/
 /project_root/my_project
 /project_root/third_party_git_repository_used_by_my_project

git init /添加/ project_root以便轻松管理本地所有内容,还是必须分别管理my_project和第三方?


git-subtree将帮助你在一棵树中处理多个项目为它们保留可分离的历史记录。


为了完整:

还有另一种解决方案,我会推荐: 子树合并

与子模块相比,它更容易维护。 您将以正常方式创建每个存储库。 在主存储库中,您想要将主存储库的主(或任何其他存储库)合并到主目录的目录中。

$ git remote add -f OtherRepository /path/to/that/repo
$ git merge -s ours --no-commit OtherRepository/master
$ git read-tree --prefix=AnyDirectoryToPutItIn/ -u OtherRepository/master
$ git commit -m "Merge OtherRepository project as our subdirectory"`

然后,为了将其他资源库拉入您的目录(以更新它),请使用子树合并策略:

$ git pull -s subtree OtherRepository master

我现在使用这种方法多年了,它的工作原理是:-)

更多关于这种方式,包括比较它与子模块可以在这个git howto文档中找到


将第三方库放在单独的存储库中,并使用子模块将它们与主项目相关联。 这是一个步骤:

http://git-scm.com/book/en/Git-Tools-Submodules

在决定如何分割回购协议时,我通常会根据我多久修改它们来决定。 如果它是一个第三方库,只是你正在对它进行更改升级到更新版本,那么你应该将它与主项目分开。


您可能正在寻找称为submodules的Git功能。 此功能可帮助您管理嵌套在主存储库内的相关存储库。





git