复制git repos

时间:2016-08-11 22:06:59

标签: git azure-devops atlassian-sourcetree

我最近不得不搬到新的笔记本电脑上。作为该过程的一部分,我将所有Visual Studio项目(托管在Visual Studio Team Services上,以前是VS Online(VSO),使用git作为版本控制)复制到大型硬盘驱动器,这样我就不必单独使用从Team Services克隆每一个。

当我将其中一个项目作为工作副本添加到SourceTree时,SourceTree会将所有文件视为已更改,其中一些文件需要添加。它似乎只能看到主分支,而我在旧机器上的开发分支上。我在Git UI中得到了类似的结果。

尝试使用

进行提取失败
error: inflate: data stream error (unknown compression method)
error: unable to unpack 7ec327f34038debcc33b63a865c98405aaa49f7b header
fatal: SHA1 COLLISION FOUND WITH 7ec327f34038debcc33b63a865c98405aaa49f7b !
fatal: index-pack failed

我有相当数量的回购,如果我不必从Team Services下载每个回购并且可以使用复制的文件,那就太好了。但是我不知道我需要做些什么来让git正确“看到”这些回购。

1 个答案:

答案 0 :(得分:2)

我认为你的副本有腐败。因为副本应该没有问题!

对我来说,复制git存储库的最佳方法是:

  • 提交所有更改
  • 删除工作目录中的所有文件(以极大地加速复制)。但要小心,绝对保持' .git'夹!
  • run' git gc' (这可以快速复制大包文件)
  • 复制存储库
  • 在新的存储库中,运行git reset --hard以恢复工作目录的内容(这很快)

这更可靠,更快!