首页 > 解决方案 > 在本地打包一个尊重 .gitignore 的 git 存储库

问题描述

我在本地有一个 git repo,它在 .gitignore 中有一堆文件(例如 node_modules)。我想通过电子邮件将此 repo 作为 zip 附件发送给朋友。有没有办法创建一个尊重 .gitignore 的 git 包?我知道我可以复制一个文件夹并手动删除所有不需要的文件,但有没有更简单的方法?就像 npmnpm pack一样,它会在本地创建一个 tarball,看起来就像要发布它一样(即尊重 .npmignore)。git有等价物吗?谢谢。

编辑:

为了澄清,我希望结果与我推送到远程仓库并且有人拉它一样。git archive创建 repo 删除.git文件的快照。似乎我想要的是git clone src_repo dest_repo,这将克隆我的本地存储库,同时考虑到.gitignore

标签: git

解决方案


您可以创建一个 Git 捆绑文件,git bundle create其中包含您要包含的一个或多个分支。如果要包括所有分支,可以使用git bundle create --all.

然后你的朋友可以通过运行从它克隆git clone BUNDLE-FILE DIRECTORY,这将在目录中创建一个新的存储库。类似地,它可以用作远程,只需指定文件名而不是普通的远程名称或 URL 即可从中提取。

这是通过文件传输 Git 存储库的首选方式。您通常不希望传输包括.git目录在内的完整存储库,因为 Git 假定诸如钩子和配置之类的内容不会受到其他用户的修改,因此压缩克隆不是传输存储库的安全方法。

您不需要压缩生成的文件,因为 Git 已经压缩了数据。如果你这样做,如果你禁用压缩它会快得多。


推荐阅读