使用git子树处理符号链接

时间:2016-09-06 14:36:38

标签: git heroku git-subtree

我试图将git存储库的一部分推送到Heroku。

这是存储库结构

  

网站
  ---共享
  --- site1
  --- site2
  ------ shared(这是父目录中共享的符号链接)。

如果我尝试简单地在Heroku上推送site2的内容,则捆绑包因未包含文件的shared而失败。

我正在寻找一种方法,在Heroku上使用git子树发送sharedsite2

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

因此,您可能已经发现,尽管Git很乐意存储本身就是符号链接的文件(除非Windows上有些愚蠢),但Git并不存储 target 或符号链接的内容。您需要此存储库中共享文件夹的内容作为实际文件。

如果您可以将共享文件夹分离到其自己的Git存储库,则应该可以轻松使用Git subtree(请参见示例3)。

首先,在需要的地方建立新的存储库:

$ <go to the new location>    
$ git init --bare

返回原始目录:

$ git subtree split --prefix=shared --annotate="(split)" -b split

然后将新分支推送到新的空存储库中:

$ git push <new-repo> split:master

您现在应该将该子树添加/拉到子目录中。

git subtree add --prefix site2/shared <split-remote> master

如果您不想创建单独的存储库,则可以在拆分后停止,然后直接跳转到Subtree添加并使用该存储库中的拆分分支。

git subtree add --prefix site2/shared origin split