2016-03-15 106 views
3

我们以前在我们团队中使用CVS,我们正在尝试迁移到git,但由于某种奇怪的原因,其中一位程序员通过手动更新分支而不是使用版本控制来处理大型项目。这导致了代码中的许多人为错误差异,我们不确定该从哪里去。如何将非版本控制的分支导入到git中?

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

什么是最好的方式去做这件事?

+2

执行此操作的一种方法是从版本化的回购库中创建新分支,然后将源代码与非版本化分支的源代码粘贴在一起。然后你会清理一切,提交,并且你将拥有一个版本分支。 –

+0

@TimBiegeleisen如果对很多文件进行了很多修改,该怎么办?有没有办法自动做到这一点? git合并能够处理这样的事情吗? – juil

+1

你需要一些方法才能进入Git“系统”,我的第一个评论可能是一种方法来做到这一点。一旦你有一个实际的Git特性分支与'master'共享一个祖先,那么问题就简化为一个简单的'git merge'。 –

回答

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 

将会有很多的冲突,但是如果你申请的一些见解,你应该能够确定解决他们的计划。

相关问题