Git:clone / subtree / filter仅限第三方lib的子目录

时间:2013-05-31 02:59:09

标签: git subdirectory svn-externals git-subtree

svn:externals“http://svn.3rdapp.com/project/subdir/subdir/ lib / mydir / subdir”

SVN允许开发人员将第三方库的子目录包含在他们自己的仓库的子目录中。

我想在我的项目中只包含第三方库的子目录,可能是一个可以编辑的子树,新的上游更改与我的编辑合并。

具体来说,https://github.com/openid/php-openid/tree/master/Auth包含在Vendor / Auth中,没有来自其他目录的任何文件或历史记录。

1 个答案:

答案 0 :(得分:0)

您可以使用1.7.0版中引入的Git的 sparseCheckout 功能。它允许您在项目中包含存储库的特定子目录。请尝试以下步骤:

  1. git clone https://github.com/openid/php-openid.git Vendor / Auth
  2. cd Vendor / Auth
  3. git config core.sparsecheckout true
  4. echo Auth />的.git /信息/稀疏结账
  5. git read-tree -m -u HEAD
  6. 在上面的步骤#4中, Auth 子目录(您要使用的)被添加到 .git / info / sparse-checkout 文件中。

    如果您稍后决定更改要使用的子目录,则只需编辑稀疏结帐文件并重做步骤#5。