做“git导出”(比如“SVN导出”)?

做“git导出”(比如“SVN导出”)?

我一直在想,是否有一个好的“git导出”解决方案可以创建一个没有.git存储库目录我知道至少有三种方法:

  1. git clone

    之后移除

    .git

    存储库目录
  2. git checkout-index

    提及此功能,但以“只需将所需的树读入索引.”开始.我不太清楚该怎么做。
  3. git-export

    是一个第三方脚本,它本质上是一个

    git clone

    进入一个临时地点

    rsync --exclude='.git'

    进入最终目的地。

这些解决方案都没有让我感到满意。最接近svn export可能是选项1,因为这两个选项都要求目标目录首先为空。但是选项2似乎更好,假设我能够理解在索引中读取一棵树意味着什么。


森林海
浏览 1005回答 3
3回答

慕桂英3389331

我发现了选项2的含义。在存储库中,您可以:git checkout-index -a -f --prefix=/destination/path/路径末尾的斜杠很重要,否则它将导致文件位于/目的地,前缀为“path”。由于在正常情况下索引包含存储库的内容,所以没有什么特殊的操作可以“将所需的树读入索引”。它已经在那里了。这个-a标志需要签出索引中的所有文件(我不确定在这种情况下省略此标志意味着什么,因为它没有做我想做的事情)。这个-f标志强制覆盖输出中的任何现有文件,而此命令通常不这样做。这似乎是我正在寻找的那种“吉特出口”。
打开App,查看更多内容
随时随地看视频慕课网APP