git的“svn export”等价命令?

vc9ivgsu  于 2023-01-24  发布在  Git
关注(0)|答案(8)|浏览(187)

git没有exactsvn export等价命令?真的吗?
注意:这不是重复的问题。也就是说,我已经知道并测试了这些命令:

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

请告诉我在git中是否有一个真实的的svn export替代品?

pbpqsu0x

pbpqsu0x1#

从如何在不修订历史记录的情况下进行快速克隆?:

git clone --depth 1 your_repo_url

然后,从the rmdir documentation开始:

rd /s /q .git
3yhwsihp

3yhwsihp2#

“我怎样才能用git做svn风格的'export'?”这个问题就像问“我怎样才能换我的篮球轮胎?"你不能,但这不是篮球的错。是的,它是橡胶的,充满了空气,但相似之处仅此而已。
svn只需要“export”,因为它会污染.svn目录下的每一个子目录,Git不会这么做,所以你真的不需要它. clone就是一个export,只是在根目录下有一个目录,所有仓库业务都在这个目录下.
最简单的方法是克隆repo,然后从repo的顶层删除.git目录,这样,它就不再是repo了,它只是一个独立的文件目录。
或者,你知道,忽略git all,只使用你克隆下来的文件。这也可以。

gev0vcfq

gev0vcfq3#

只需删除工作副本中的存储库即可。

git clone remote
rm -Rf .git

(On Windows,它是rd /s /q。谢谢@Bruno的提示。)

zed5wv10

zed5wv104#

在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>

现在你可以做一个如上所述的部分结帐。

6qqygrtg

6qqygrtg5#

为了你的 * 我还是不知道这是什么鬼东西 *:git clone --bare将克隆没有工作副本的存储库。这通常在中央存储库上完成,以最小化磁盘空间使用。
Bruno / King Crunch有最好的答案,不过如果你需要一行程序,你可以使用git bash / cygwin。

kxxlusnw

kxxlusnw6#

这是一个很老的问题,但我并没有找到一个“显而易见的解决方案”。在研究了git文档后,我发现:

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

这将从远程存储库接收内容,并将tar归档文件写入stdout,然后tar命令将提取内容并在当前目录中创建它。
如果您喜欢从本地存储库执行此操作(这显然不是问题中所需的请求),那么

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

第一种方法在Windows命令提示符下也能工作,如果你安装了tar的话。第二种方法很可能不能工作,而且可能会覆盖你的目录。

lf3rwulv

lf3rwulv7#

关于你的观点,git archive〈-这将是一个完美的解决方案...但它只有两种可能的格式:tar或zip,您可以使用git-archive(1)手册页的EXAMPLES部分中的文档添加新格式:

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.com上的一个问题中发布有关配置的更多详细信息。

wlp8pajw

wlp8pajw8#

https://stackoverflow.com/a/160719/43597开始

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

相关问题