2010-04-23 88 views
1

我正在与一些从未使用过git的人一起工作。不了解git的功能,他们创建了两个版本的项目:开发和生产。这两个版本都存在于当前环境中。使用git合并两个文件夹

使事情进一步复杂化,除了旧的开发文件夹外,其他用户还创建了这些文件夹。所以项目目录看起来像这样

/root 
    /.git 
    /proj   (old dev folder with my own code in it) 
    /dev_proj  (new folder which I would like to merge /prod with) 
    /prod_proj  (production code) 

所以我想要做的是合并,我已经在/proj与在/dev_proj工作所做的工作。有没有办法用git来做到这一点?

我想过创建一个分支,将所有文件从/proj复制到/dev_proj并将该分支与主分支合并。这会工作吗?

谢谢,如果我能澄清一些事情让我知道。

+0

proj和dev_proj将文件夹分隔在同一个git仓库或单独的分支中,或单独的git仓库? dev_proj中是否存在不在您的项目文件中的更改?如果是这样,你是否有这样的代码之前的方式吗? – clahey 2010-04-23 01:32:26

+0

proj,dev_proj和prod_proj是git项目的文件夹。这是当前主存储库中的结构。另一位程序员在/ dev_proj文件夹中更新了所有的代码。所以我的更新是在/ proj,而他在/ _proj。 我认为他做了一次提交将所有更新的文件提交到/ dev_proj,因此这些更改没有真正的历史记录。 – vrish88 2010-04-23 01:37:07

+0

但proj有你的历史?你知道他从开发他的代码中选择了哪些变更吗? – clahey 2010-04-23 01:42:22

回答

1

我不是一个git专家,但我会建议创建一个新的分支,扎根于他在进行更改之前复制其代码的更改。

git branch devProjTemp <commit-id> 

(不要忘了git checkout devProjTemp。)然后将所有文件从dev_proj复制到PROJ,并提交。那么你应该能够从新分支合并到主,它应该做正确的事情。

如果你想有独立的开发和生产数据,我也建议为其中的一个创建一个分支。具体来说,我会创建一个prod分支,并将prod_proj中的更改复制到该分支。

然后,我会删除master分支和prod分支中的prod_proj和dev_proj。

你的同事不知道分支机构?我会在那里做一些教学。一旦你创建了分支,它不应该那么难。

+0

我不是git专家,但这是我发现解决这类问题的唯一方法。 – 2012-08-06 17:55:41