【问题标题】:git-archive a subdirectory --git-archive 一个子目录——
【发布时间】:2013-06-25 09:56:37
【问题描述】:

我正在使用 git-archive 在 git repo 中归档子目录,如下所示:

git archive -o ../subarchive.zip HEAD subdir/*

但是,生成的存档保留 subdir/ 目录结构,即内容是:

subdir/
   whatever.js
   morestuff.js

当我真的想要whatever.js 和morestuff.js 放在存档的根目录时。

怎么做?谢谢。

【问题讨论】:

    标签: git subdirectory git-archive


    【解决方案1】:

    你可以这样做:

    git archive -o ../subarchive.zip HEAD:subdir
    

    顺便说一句,如果您以这种形式使用该命令并查看它会生成什么,一个简单的方法是:

    git archive --format=tar HEAD:subdir | tar t
    git archive --format=tar HEAD subdir | tar t
    # ... and so on ...
    

    看到您要查找的内容后,您可以更改格式并使用-o 标志来实际创建存档。

    【讨论】:

    • 有什么方法可以有效地为远程仓库执行此操作,例如只获取一个无法克隆的巨大仓库的一个目录/一个修订版?我试过--remote,但速度慢得离谱。
    • 很好用。我试图了解 GIT 文档的哪一部分谈到了这一点,但不能。请详细说明一下?
    • @Meglio git archive --help,如果您找不到任何东西,请告诉我(然后请尽可能具体)
    • 请注意,如果当前工作目录不是 repo 的根目录,那么 git 将仅从工作目录(和后代)存档。要更改这一点,请使用上面的 : 符号 - 即只是 HEAD:HEAD:/HEAD:. 不起作用。
    • 由于某种原因,如果你使用它,它会忽略你的.gitattributes 中的export-ignore 语句。即使文件包含在您导出的目录中,即使您使用--worktree-attributes
    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 2011-10-24
    • 2014-03-04
    • 2016-03-05
    • 1970-01-01
    • 2011-05-02
    • 2014-10-23
    • 2013-02-27
    相关资源
    最近更新 更多