git - 使用git merge 两个文件夹

标签 git version-control merge

我正在和一些以前从未使用过 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 中完成的工作 merge 。有没有办法用 git 做到这一点?

我考虑过创建一个分支,将所有文件从 /proj 复制到 /dev_proj 并将该分支与 master merge 。这行得通吗?

谢谢,如果我能澄清一些事情,请告诉我。

最佳答案

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

git branch devProjTemp <commit-id>

(不要忘记 git checkout devProjTemp。)然后将所有文件从 dev_proj 复制到 proj,然后提交。然后你应该能够从新分支 merge 到 master 并且它应该做正确的事情。

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

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

您的同事不知道分支机构吗?我会在那里做一些教学。创建分支后应该不会那么难。

关于git - 使用git merge 两个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2695619/

相关文章:

Git - 在错误的目录中初始化 bare

git - 从 git 命令获取 JSON,比如 git status

git - "pure git"有pull request的概念吗?

git - 如何在使用 "git merge -s ours"选项完成的历史记录中查找 merge 提交?

c# - 使用重复处理 C# 中的列表联合

linux - 合并、排序、维护行序

git - 我的 friend 可以使用我本地的 git 仓库作为他的远程仓库吗?

ruby - Capistrano错误: could not connect to ssh-agent

GIT 1.9 - 远程 : error: 'receive.denyCurrentBranch'

Git 同步到上游 : Newly created branch not showing in my fork