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
替代品?
8条答案
按热度按时间pbpqsu0x1#
从如何在不修订历史记录的情况下进行快速克隆?:
然后,从the rmdir documentation开始:
3yhwsihp2#
“我怎样才能用git做svn风格的'export'?”这个问题就像问“我怎样才能换我的篮球轮胎?"你不能,但这不是篮球的错。是的,它是橡胶的,充满了空气,但相似之处仅此而已。
svn只需要“export”,因为它会污染.svn目录下的每一个子目录,Git不会这么做,所以你真的不需要它. clone就是一个export,只是在根目录下有一个目录,所有仓库业务都在这个目录下.
最简单的方法是克隆repo,然后从repo的顶层删除.git目录,这样,它就不再是repo了,它只是一个独立的文件目录。
或者,你知道,忽略git all,只使用你克隆下来的文件。这也可以。
gev0vcfq3#
只需删除工作副本中的存储库即可。
(On Windows,它是
rd /s /q
。谢谢@Bruno的提示。)zed5wv104#
在GitHub这样的主机上,你可以精确地生成
svn export
。示例:
甚至是部分的!(存储库的某个子部分)
示例:
对于您自己的仓库,您应该创建一些GitHub仓库并将其添加为远程仓库:
那么
现在你可以做一个如上所述的部分结帐。
6qqygrtg5#
为了你的 * 我还是不知道这是什么鬼东西 *:
git clone --bare
将克隆没有工作副本的存储库。这通常在中央存储库上完成,以最小化磁盘空间使用。Bruno / King Crunch有最好的答案,不过如果你需要一行程序,你可以使用git bash / cygwin。
kxxlusnw6#
这是一个很老的问题,但我并没有找到一个“显而易见的解决方案”。在研究了git文档后,我发现:
这将从远程存储库接收内容,并将tar归档文件写入stdout,然后tar命令将提取内容并在当前目录中创建它。
如果您喜欢从本地存储库执行此操作(这显然不是问题中所需的请求),那么
第一种方法在Windows命令提示符下也能工作,如果你安装了tar的话。第二种方法很可能不能工作,而且可能会覆盖你的目录。
lf3rwulv7#
关于你的观点,git archive〈-这将是一个完美的解决方案...但它只有两种可能的格式:tar或zip,您可以使用
git-archive(1)
手册页的EXAMPLES部分中的文档添加新格式:虽然“在windows上”通常被认为是许多任务的障碍,但只要做一点额外的工作,你几乎可以通过使用Cygwin或MKS Toolkit等软件赶上运行其他操作系统的人。
如果在确认shell中有您需要的任何命令后,这种
git config …
命令仍然不起作用,那么您可能应该在SuperUser.com上的一个问题中发布有关配置的更多详细信息。wlp8pajw8#
从https://stackoverflow.com/a/160719/43597开始