没有 exact
svn export
相当于 git 的命令吗?真的吗?
注意:这不是一个重复的问题。也就是说,我已经知道并已经测试过这些命令:
git clone --depth 1
<- Still downloads the .git folder.git checkout-init
<- Doesn't work for a remote repo, it works with a working copy (so you need to clone first).git archive
<- This would be the perfect solution, because it has a --remote
参数,但它只有两种可能的格式:tar或zip,所以我需要在下载后解压/解压,为此我需要一个管道(|),但我在Windows上! ! (不是*n?x)git clone --bare
<- I still don't know what the heck this is, but it's not what I need.请告诉我 git 中是否有真正的
svn export
替代品?
问题“如何使用 git 进行 svn 风格的‘导出’?”就像问“我如何更换篮球的轮胎?”。你不能,但这不是篮球的错。是的,它是橡胶且充满空气,但相似之处仅此而已。
您只需要使用 svn“导出”,因为它会用 .svn 目录污染每个子目录。 Git 不会这样做,所以你真的不需要它。克隆是一种导出,只是在根目录下有一个目录,所有存储库业务都位于其中。
最简单的方法是克隆存储库,然后从存储库顶层删除 .git 目录。这样做,它就不再是一个存储库,它只是一个独立的文件目录。
或者,你知道,完全忽略 git,只使用你克隆下来的文件。这也有效。
只需删除工作副本中的存储库即可。
git clone remote
rm -Rf .git
(在 Windows 上,它是
rd /s /q
。感谢@Bruno 的提示。)
在 GitHub 等某些主机上,您可以精确地
svn export
。
示例:
svn export https://github.com/GNOME/banshee/branches/master
甚至是部分! (存储库的某些子部分)
示例:
svn export https://github.com/liferay/liferay-portal/branches/6.1.x/tools
对于您自己的存储库,您应该创建一些 GitHub 存储库并将其添加为远程存储库:
git remote add github https://github.com/<user>/<repo>.git
然后
git push github <branch>
现在您可以按照上述方式进行部分结帐。
更新:看起来此功能即将停止。
对于您的我仍然不知道这到底是什么:
git clone --bare
将在没有工作副本的情况下克隆存储库。这通常在中央存储库上完成,以最大限度地减少磁盘空间的使用。
布鲁诺/King Crunch 给出了最佳答案。尽管如果您需要单行代码,您可以使用 git bash / cygwin 来进行管道传输。
这是一个相当老的问题,但我认为我没有找到“明显的解决方案”。经过对 git 文档的一些研究,我发现:
git archive --format=tar --remote ... | tar xf -
这甚至会从远程存储库接收内容并将 tar 存档写入标准输出。然后 tar 命令将提取内容并在当前目录中创建它。
如果您想从本地存储库执行此操作(这显然不是问题中所需的请求),那么
git archive --format=tar ... | ( cd /your/path && tar xf - )
将为您解决问题。如果您安装了 tar,第一种方法也适用于 Windows 命令提示符。后者很可能不会,并且可能会覆盖您的目录。
关于你的观点,git archive <- This would be the perfect solution ...but it only has 2 possible formats: tar or zip,您可以使用
git-archive(1)
手册页的示例部分中的文档添加新格式:
git config tar.tar.xz.command "xz -c"
Configure a "tar.xz" format for making LZMA-compressed tarfiles.
You can use it specifying --format=tar.xz, or by creating an output
file like -o foo.tar.xz.
虽然“在 Windows 上”通常被认为是许多任务的障碍,但通过一些额外的工作,您几乎可以通过使用 Cygwin 或 MKS Toolkit 等软件赶上运行其他操作系统的人。
如果在确认您需要的任何命令都可以从 shell 中使用后,这种
git config …
命令仍然不适合您,那么您也许应该在 SuperUser.com 上的问题中发布有关您的配置的其他详细信息.
git archive --list
列出安装的可用格式。
git archive --list extra garbage
”(man)默默地忽略了多余的命令行参数,该参数已在 Git 2.44(2024 年第一季度)中得到纠正。
请参阅 Junio C Hamano (gitster
)
的commit d6b6cd1(2023 年 12 月 21 日)。
gitster
-- 合并于 commit 6bf317d,2024 年 1 月 8 日)
:“archive
”不采取进一步选项--list
”(man)应该注意到一个未使用的额外命令行参数。git archive --list blah
就这样吧。
错误消息现在是:
extra command line parameter 'blah'
来自https://stackoverflow.com/a/160719/43597
git checkout-index -a -f --prefix=/destination/path/