【问题标题】:git-archive vs. cpgit-archive 与 cp
【发布时间】:2011-05-02 09:30:03
【问题描述】:

使用有什么好处

git archive master/foo | tar -x -C ~/destination

部署 /foo vs. 的副本只是从工作副本中复制

cp foo ~/destination/foo

所以,除非出于某种原因,您不想从 master 中的 foo 子目录(或您碰巧正在处理的任何分支)复制所有内容,否则使用 cp 部署到 [destination] 就足够了。

【问题讨论】:

    标签: git archive cp


    【解决方案1】:

    git archive 仅导出属于 git 存储库的项目。 cp 复制指定目录下的所有内容,包括.git 目录、被 git 忽略的文件等。

    【讨论】:

    • 我部分同意第一部分。但是只有一个 .git 文件夹,它在 foo 之外,所以复制 foo 并不意味着 .git 文件夹被复制了……只有 foo 和它的子文件夹。
    • 另外,如果我将 foo 中的所有内容添加到上一次提交中(为什么不这样做),这意味着 foo 与 master 分支上的副本完全相同。
    • 您可能不希望 foo 中的 所有内容 都被复制:想想中间构建产品、编辑器备份文件以及 .gitignore 文件中常见的任何其他内容。
    • @DKinzer:绝大多数项目在他们的.gitignore 中至少有一些东西,无论是构建产品、日志、临时文件、本地数据等等。我会说想要避免这些文件更为常见,但你是对的,如果你不在乎它们是否出现,只需复制即可。
    • git archive 也尊重 export-ignoreexport-subst gitattributes,如果给定提交 ID 或标签 ID,它将提交 ID 存储在全局扩展 pax 标头中(除非被要求不这样做) .
    猜你喜欢
    • 1970-01-01
    • 2010-12-08
    • 2013-06-25
    • 1970-01-01
    • 2014-10-01
    • 2011-04-12
    • 2011-01-17
    • 2018-12-05
    • 1970-01-01
    相关资源
    最近更新 更多