2010-01-11 57 views
25

我正在使用'git svn clone'从我们的SVN服务器创建Git工作副本。但是这需要相当长的时间(我们有> 20.000转和几乎10.000个文件)。我还有其他一些机器(对于其他开发人员),我希望以相同的方式进行设置。是否有可能将生成的文件从第一台机器复制到其他机器上,以便花费更少的时间?我可以将Git工作副本复制到另一台机器上吗?

换句话说,Git工作副本中是否有任何东西将它与创建的机器绑定在一起?

谢谢。

+5

是的,你可以,但没有必要复制完整的工作树。你可以在没有工作树的情况下拷贝'.git'文件夹(即作为“裸机”),然后在另一台机器上签出最新的工作树。 – 2010-01-11 14:51:42

回答

32

您可以复制它,一切都在.git文件夹内,并且不依赖于其他任何东西。

+8

几乎如此。除了可能引用外部程序的自定义比较驱动程序和挂接脚本之类的配置项外,还有一些简单的配置项通常在不同平台上有所不同。当在不同平台之间进行复制时,应该检查/设置/取消设置诸如core.ignorecase,core.autocrlf,core.safecrlf,core.fileMode(可能还有其他一些)的项目。我认为从复制的.git目录重新克隆应该总是安全的。 – 2010-01-12 07:14:14

2

不用,只需复制repo的根目录就可以了。只要确保你还得到任何不可见的文件,尤其是.git目录(在项目的根目录中),其中包含回购的所有配置信息。

7

还值得一提的是,如果您没有本地更改(“git status”没有显示任何要保留的内容),则可以复制只有 .git目录并执行“git checkout”。从(几乎为空)存储库根目录结束。

如果它是一个慢速链接,它可能也值得在转移之前重新包装存储库。

我唯一担心的是如果git-svn记住一些你不想复制到其他开发者的用户信息。

+1

我的名字和电子邮件地址确实出现在.git/logs/refs/remotes/trunk中。虽然目录名为'logs',但我想知道这对其他开发者是否会成为问题... – 2010-01-12 08:42:22

相关问题