Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 拆分原始存储库后删除它是否安全?_Git_Tfs_Git Branch - Fatal编程技术网

Git 拆分原始存储库后删除它是否安全?

Git 拆分原始存储库后删除它是否安全?,git,tfs,git-branch,Git,Tfs,Git Branch,当我们的源代码从TFS迁移到git时,所有项目都放在一个存储库中。后来我们知道这不是推荐的方法,所以我们决定将每个项目迁移到它自己的存储库中 因为我们不想(再次)失去我们的历史,我们采用了以下策略: 将项目的子树创建到单独的分支中 将分支拉入新存储库 现在已经(几乎)完成了,我想知道完全删除旧的“源”存储库是否安全?不幸的是,您几乎完成了。通常,拆分存储库的更好方法是 克隆原始、完整的存储库 用新(空)回购的URL替换远程 将整个(原始)回购协议推至新回购协议 只有这样,才能修剪新存储库,

当我们的源代码从TFS迁移到git时,所有项目都放在一个存储库中。后来我们知道这不是推荐的方法,所以我们决定将每个项目迁移到它自己的存储库中

因为我们不想(再次)失去我们的历史,我们采用了以下策略:

  • 将项目的子树创建到单独的分支中
  • 将分支拉入新存储库

现在已经(几乎)完成了,我想知道完全删除旧的“源”存储库是否安全?

不幸的是,您几乎完成了。通常,拆分存储库的更好方法是

  • 克隆原始、完整的存储库
  • 用新(空)回购的URL替换远程
  • 将整个(原始)回购协议推至新回购协议
  • 只有这样,才能修剪新存储库,使其仅包含此部分中所需的文件
  • 对每个新子级重复整个过程
通过这种方法,任何一个新的“子”回购都可以用来重新创建原始完整的回购。他们每个人都有一份完整的原著历史副本。更重要的是,如果删除的一个或两个文件太多,可以从新存储库中恢复它们

最后,每个新存储库都有一个非常清晰的提交历史记录,显示它是如何从原始存储库派生的

使用这种方法,删除原始文件是绝对正确的,因为它可以随意重新创建

在你目前的职位上,如果没有一些非常清楚的细节,你很难说出你是如何完成你提到的两个步骤的

如果您的git服务器支持,我倾向于将原始文件标记为“只读”,并出于安全考虑保留它