如何递归复制但忽略 gitignored 文件?

如何递归复制但忽略 gitignored 文件?

我有一个包含一堆 git 存储库的文件夹。我想创建此文件夹的备份,但问题是,如果我只是复制所有内容(例如使用递归cp -r <folder>),则生成的文件夹会很大。这是因为每个存储库都有 git 忽略的、大小很大的文件/文件夹(例如虚拟环境、数据文件),我不想备份这些文件/文件夹。否则,所有存储库的大小都很小。

有没有办法递归复制文件夹但只包含非 gitignored 文件/文件夹?理想情况下,我还想包含.git用于存储所有提交/分支历史记录的文件夹。

答案1

  1. 备份 != repo-copy。您只能选择一种形式
  2. 如果你需要备份(一些没有历史记录的树的快照),你必须阅读git 存档并分别对每个 git-repo 使用它
  3. 如果你想要“复制历史记录”,只需复制git clone每个仓库(并且git pull稍后定期复制)

相关内容