如何部分导出 git 存储库?

Pio*_*sen 4 svn git google-code git-svn

我的公司内部使用 git,我们在使用 svn 的 Google Code 上以开源方式发布了一些工作。(如果它支持git,问题可能是一样的。)

问题是我们只发布了存储库的一部分,因此按照http://code.google.com/p/support/wiki/ImportingFromGit中所述使用 git-svn将不起作用。

  • 如何发布部分存储库?(我第一次只是复制了我们想要发布的文件。)
  • 如何同步发布的文件和Code的存储库之间的更改?

sim*_*ser 5

在 git 1.7.11 中,我们使用这样的命令仅导出存储库中一个目录的原始文件,而不导出 git 控件和历史记录。确保在您希望文件出现的现有目录中运行它(即首先 make 并 cd 到目标目录):

git archive --remote /local/master/project.git HEAD:open/src | tar x
Run Code Online (Sandbox Code Playgroud)
  • 将/local/master/project.git替换为您用来指定存储库的任何内容(我的示例使用本地 NFS master)
  • 将 HEAD 替换为分支名称
  • open/src替换为存储库中要导出的目录

使用 --remote 选项,您甚至不需要在克隆副本中运行它,因此它可以嵌入到您围绕发布机制的任何其他进程中。

您可以进一步使用 tar 选项从选定的目录树中排除某些文件。