我在本地有一个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
答案 0 :(得分:1)
您要查找的是git存档。
有关详细文档,请参见here。
答案 1 :(得分:1)
您可以使用git bundle create
创建一个包含要包含的一个或多个分支的Git捆绑文件。如果要包括所有分支,则可以使用git bundle create --all
。
然后您的朋友可以通过运行git clone BUNDLE-FILE DIRECTORY
从其中克隆,这将在目录中创建一个新的存储库。同样,只需指定文件名而不是常规的远程名称或URL,即可将其用作从中拉出的远程对象。
这是通过文件传输Git存储库的首选方式。通常,您不希望传输包含.git
目录的完整存储库,因为Git假定钩子和配置之类的内容不会受到其他用户的修改,因此压缩克隆副本不是安全的传输方式存储库。
您不需要压缩结果文件,因为Git已经压缩了数据。如果这样做,则禁用压缩会更快。