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

How to import non-version controlled branches to git?

我们过去在我们的团队中使用 CVS,我们正在尝试迁移到 git,但出于某种奇怪的原因,其中一位程序员一直在通过手动更新分支而不是使用版本控制。这导致了代码中的许多人为错误差异,我们不确定从这里到哪里去。

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

解决此问题的最佳方法是什么?

这是您可以尝试解决问题的一种方法。假设您从 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

会有很多冲突,但如果您运用一些洞察力,您应该能够确定解决这些冲突的计划。