是否有SVN外部的GIT替代方案?

时间:2011-07-13 15:31:36

标签: git svn externals

我目前使用SVN来管理jboss服务器配置,我需要在每个工作副本中有相同子目录的多个副本,但引用服务器上的同一目录,这样当我更改某个文件时,每个副本都会获得更新

示例:

  • / server / bin(共享)
  • / server / node-01(存储库/服务器/节点的副本)
  • / server / node-02(存储库/服务器/节点的副本)

是否可以使用git实现相同的目标?我在(maney)类似的问题中找不到明确的答案。

1 个答案:

答案 0 :(得分:2)

我所知道的最好的近似是git-submodule [1]。

您可以定义子存储库,并让“父”存储库在概念上包含一个哈希,指定每个子存储库应具有的确切修订。

当您的HEAD在子存储库中移动时,“git status”和“git diff”会将其报告为父存储库中的哈希更改。

不幸的是,git子模块有点笨重:

  • 当您拉入父回购时,它不会自动更新子回购。相反,子回购将显示为您已进行本地更改(将其新位置恢复到原来的位置)。

  • 在拉/合并父回购后,你必须每次都显式地调用“git submodule update”(或者当然是脚本)。

这也意味着“git rebase”和父级的其他操作在子模块存在的情况下也不能正常工作。但你确实对这里的行为进行了细致的控制,所以没有什么是你无法解决的。

[1] http://kernel.org/pub/software/scm/git/docs/git-submodule.html