如何将我的项目导出为git存储库的.zip?

Dan*_*iel 1 git zip export

最近有人要求.zip我将我的项目之一导出到我的Git存储库中。

实际上,在我使用Git的4年中,我从来没有这样做。

我希望所有在命令行终端中完成的答案。

Abe*_*ejo 16

速记示例

# zip archive
git archive -o output.zip master
Run Code Online (Sandbox Code Playgroud)
# tape archive
git archive -o output.tar master
Run Code Online (Sandbox Code Playgroud)
# tarball
git archive -o output.tar.gz master
Run Code Online (Sandbox Code Playgroud)

根据官方文档,该-o选项能够通过扩展文件名来识别目标压缩格式。

任何其他未识别的格式将默认为磁带存档,相当于:

--format=tar
Run Code Online (Sandbox Code Playgroud)


Enc*_*lon 5

git archive --format zip --output /full/path/to/zipfile.zip master

  • 顺便说一下,我使用的命令是`git archive --format=zip --output project.zip HEAD`,但我仍然检查了答案,因为它确实让我更接近解决方案。 (13认同)
  • `git archive` 将从输出文件推断格式,将命令减少为 `git archive -o project.zip master`。 (6认同)

Ice*_*erg 5

如果您也想包含.git/并且不想包含 git 未跟踪的其他额外文件,以下代码可能会有所帮助。假设你的git项目的路径是/opt/helloworld/,提交剩下的内容,然后你可以执行以下操作:

git clone /opt/helloworld/  folder2
cd folder2
tar -czf helloworld-latest.zip folder2
Run Code Online (Sandbox Code Playgroud)

  • 包含“.git”通常不是一个好主意,因为它可能包含任意剩余状态(也许也是秘密?)。在大多数情况下,您应该使用“git bundle”来传输存储库。 (5认同)
  • 此设置中最大的问题是您还添加了“gitignore”文件,其中可能存在一些秘密。 (2认同)