git 多仓库管理

标签 git project-management git-svn

我正在开发一个项目,我们使用 git 管理外部库/ header 和质量检查。以下是每个开发人员的目录结构:

~/dev/proj 
~/dev/ext 
~/dev/qa

proj、ext 和 qa 是不同的 git 存储库。在 svn 下,这些目录的同步很简单:在 ~/dev 下的单个更新将递归地更新所有目录。使用 git,我们需要为每个目录单独执行“git pull”。这不好;有人总是会忘记更新(git pull)其中一个目录,他的项目将不同步(例如,新的 qa 不会通过旧代码)。我查看了“git submodules”,它没有为“git pull”提供一个点来同时更新这三个独立的模块[更正:我在这里错了,但请阅读我的回答below] .

您可能会争辩说我们应该将 proj、ext 和 qa 放在同一个 git 存储库下,但我认为这违背了将不同概念保存在不同存储库中的 git 理念。

有没有人有解决这个小问题的方法(除了编写脚本对 ~/dev 下的每个目录执行 git pull)?

谢谢,

阿尔坦

最佳答案

我的理念是:如果我总是需要将 X 和 Y 放在一起,那么从逻辑上讲,它们属于同一个存储库。只有在适当隔离的情况下才使用子模块才有意义——想想外部供应商库,你不想随意引入更新,也不希望你的团队能够直接编辑它们——这是有道理的。但是,无论您如何切片,它都会增加步骤。我坚持“如果它是一个项目,就把它放在一个存储库中”,不管我理论上如何将它分解成更“像 git”。

关于git 多仓库管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700575/

相关文章:

directory - 如何防止 git svn rebase 创建空目录

svn - 将 svn 存储库克隆到 git 时,我应该只克隆主干还是整个存储库?

git - Bitbucket 无法 merge 不相关的分支

project-management - super 简单好用(手持)的项目管理软件?

iphone - 将项目移至新项目的最佳方式

git - 如何管理提交者的层次结构(如 Linux 内核开发)

eclipse - Git-svn 和 Eclipse?

git - 如何编写一个 shell 脚本来从 gitlab 克隆我所有的 repo

git - 使用 BitBucket 中的 Rest API 获取最新的 10 个分支或所有分支

git - 如何拒绝/将自己从(协作)GitHub 存储库中删除?