繁体   English   中英

git 的确切 `svn export` 等效命令?

[英]Exact `svn export` equivalent command for git?

git 没有确切的svn export等效命令? 真的吗?

当心:这不是一个重复的问题。 也就是说,我已经知道并测试了这些命令:

  • git clone --depth 1 <- 仍然下载.git 文件夹。
  • git checkout-init <- 不适用于远程仓库,它适用于工作副本(因此您需要先克隆)。
  • git archive <- 这将是完美的解决方案,因为它有一个--remote参数,但它只有两种可能的格式:tar 或 zip,所以我需要在下载后解压缩/解压缩,为此我需要一个 Z208CC296Z19777 (|),但我在 windows 上?! (不是 *n?x)
  • git clone --bare <- 我仍然不知道这到底是什么,但这不是我需要的。

请赐教git中是否有真正的svn export替代品?

如何在没有历史修订的情况下进行快速克隆?

git clone --depth 1 your_repo_url

然后,从rmdir 文档

rd /s /q .git

问题“如何使用 git 进行 svn 风格的‘导出’?” 就像问“我怎样才能给我的篮球换轮胎?”。 你不能,但这不是篮球的错。 是的,它是橡胶的,充满了空气,但相似之处到此为止。

您只需要使用 svn 进行“导出”,因为它会使用 .svn 目录污染每个子目录。 Git 不这样做,所以你真的不需要它。 克隆是一种导出,只有一个目录位于所有存储库业务所在的根目录中。

最简单的方法是克隆 repo,然后从 repo 的顶层删除 .git 目录。 这样做,它不再是一个 repo,它只是一个独立的文件目录。

或者,你知道,忽略 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将克隆没有工作副本的存储库。 这通常在中央存储库上完成,以最大限度地减少磁盘空间使用。

Bruno / King Crunch 有最好的答案。 尽管您可以使用 git bash / cygwin 来允许您使用 pipe 如果您需要单线。

这是一个相当古老的问题,但我认为我没有找到“明显的解决方案”。 在对 git 文档进行一些研究后,我发现:

git archive --format=tar --remote ... | tar xf -

这甚至会从远程存储库接收内容并将 tar 存档写入标准输出。 然后 tar 命令将提取内容并在您的当前目录中创建它。

如果您想从本地存储库中执行此操作(这显然不是问题中所需的请求),那么

git archive --format=tar ... | ( cd /your/path && tar xf - )

将为您解决问题。 如果您安装了 tar,第一种方法也适用于 Windows 命令提示符。 后者很可能不会并且可能会覆盖您的目录。

关于你的观点, git 存档 <- 这将是完美的解决方案......但它只有 2 种可能的格式:tar 或 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 上”通常被认为是许多任务的障碍,但只要做一些额外的工作,您几乎可以通过使用CygwinMKS Toolkit等软件赶上运行其他操作系统的人。

如果在确认 shell 中提供了您需要的任何命令之后,这种git config …命令仍然对您不起作用,那么您或许应该在SuperUser.Z4D236D9A2D4BECC5Z6.50上的问题中发布有关您的配置的更多详细信息。

来自https://stackoverflow.com/a/160719/43597

git checkout-index -a -f --prefix=/destination/path/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM