如何将非版本控制的分支导入git?

时间:2016-03-15 02:31:54

标签: git migration cvs git-merge

我们曾经在团队中使用CVS,我们正在尝试迁移到git,但由于一些奇怪的原因,其中一个程序员通过手动更新分支而不是使用版本控制来处理大项目。这导致代码中存在许多人为错误差异,我们不确定从何处开始。

现在我们正在等待那个程序员在导入到git之前合并这些分支,但它花了太长时间。 我们正在考虑分别导入所有分支,然后将它们合并到git中。我们只是不确定如何使用非版本控制的分支机构。

最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

这是您尝试解决问题的一种方法。假设您从master分支开始,首先创建一个新的功能分支,该分支将保存程序员手动版本的项目:

git checkout -b feature

接下来,您可以复制包含程序员项目的根目录,并将其粘贴到刚刚创建的feature分支的根目录之上。我看到每个文件都有三种可能性:

  • 将添加只有程序员的新文件
  • 共享文件将被程序员的版本
  • 覆盖
  • 共享文件将添加到与feature分支
  • 中的位置不同的位置

深呼吸,从Git控制台输入git status。您可能会看到所有三种情况的证据,可能还包括目录。注意你所看到的,因为你将在最后一步处理这些文件。

接下来将每个文件添加到Git索引并通过

提交
git add path/to/file
git commit -m 'programmer branch created'

如果为您加快速度,请不要害怕使用通配符,例如: git add dir/*

现在你有一个真正的Git功能分支代表了程序员所做的工作。对于最后一步,您可以尝试通过以下方式将thigs分支合并到master

git checkout master
git merge feature

会有很多冲突,但如果你应用一些见解,你应该能够确定解决它们的计划。