3

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

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

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

3 回答 3

4

您可以使用git-filter-branch提取要导入 Google 代码的部分。

于 2009-02-12T09:11:04.520 回答
4

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

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

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

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

于 2012-11-30T19:48:01.733 回答
3

一种方法可能是为公共内容创建一个单独的 Git 存储库,并将其作为子模块包含在内部存储库中。然后将公共 Git 存储库与 Google Code SVN 存储库同步会容易得多。

于 2009-02-12T09:08:54.853 回答