在本地打包尊重.gitignore

时间:2019-05-07 21:15:35

标签: git

我在本地有一个git repo,它在.gitignore中有很多文件(例如node_modules)。我想将此回购作为zip附件发送给朋友。有没有办法创建一个尊重.gitignore的git包?我知道我可以复制一个文件夹并手动删除所有不需要的文件,但是有没有更简单的方法?就像npm具有npm pack一样,它会在本地创建一个tarball,看起来与要发布的tarball完全一样(即尊重.npmignore)。 git有等同功能吗?谢谢。

编辑:

为澄清起见,我希望结果与我推送到远程仓库并有人拉出的结果相同。 git archive创建删除.git文件的仓库的快照。似乎我想要的是git clone src_repo dest_repo,它将考虑到.gitignore

克隆我的本地存储库

2 个答案:

答案 0 :(得分:1)

您要查找的是git存档。

有关详细文档,请参见here

答案 1 :(得分:1)

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

然后您的朋友可以通过运行git clone BUNDLE-FILE DIRECTORY从其中克隆,这将在目录中创建一个新的存储库。同样,只需指定文件名而不是常规的远程名称或URL,即可将其用作从中拉出的远程对象。

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

您不需要压缩结果文件,因为Git已经压缩了数据。如果这样做,则禁用压缩会更快。