2009-02-12 119 views
2

我的公司在內部使用git,我們在Google Code上使用svn發佈了一些我們的工作作爲開源代碼。 (如果它支持混帳,那問題就可能是相同的。)如何部分導出git存儲庫?

的問題是,我們只發布我們的代碼庫的一部分,所以使用Git svn的作爲http://code.google.com/p/support/wiki/ImportingFromGit描述將無法正常工作。

  • 如何發佈部分存儲庫? (這是我第一次複製我們想要發佈的文件。)
  • 如何同步已發佈文件和代碼庫之間的變化?

感謝, 彼得

回答

4

您可以使用git-filter-branch來提取要導入Google代碼的部分。

+0

謝謝,那岩石! – 2009-05-07 07:04:32

2

一種方法可能是創建公物一個單獨的Git倉庫,幷包括作爲內部存儲庫的子模塊。然後,將公共Git存儲庫與Google Code SVN存儲庫同步將會容易得多。

2

在git 1.7.11中,我們使用這樣的命令只導出存儲庫中一個目錄的原始文件,而不導出git控件和歷史記錄。一定要在你想要的文件出現的現有目錄運行(即製作和cd到目標目錄在前):

git archive --remote /local/master/project.git HEAD:open/src | tar x 
  • 更換/local/master/project.git你使用任何指定的庫(我的例子中使用本地NFS主)
  • 與分支名稱替換HEAD
  • 更換開/ src目錄與倉庫裏的目錄導出

使用--remote選項,您甚至不需要在克隆拷貝中運行此選項,因此它可以嵌入在您的發佈機制周圍的任何其他進程中。

您可以進一步使用tar選項從選定的目錄樹中排除某些文件。

+0

謝謝。要複製源文件,我只能使用`cp`。當然,`git archive`是一個很好的工具,可以自動化一些東西,但是它確實不包含我詢問的用例:) – 2012-11-30 23:15:17