假设以下场景:
我有一个名为dir的git项目project.在这个目录里面,我做了一些提交.然后,cp -r我将这个目录复制到一个叫做的目录project-with-feature-b,即我手动创建了一个分支.
现在我想合并这两个文件夹,如果它们是两个分支,有没有办法用git做到这一点?
更具体地说我的问题.我有一个svn存储库,我正在使用git-svn工具来克隆它.我不能使用-T/-b/-t选项,但我想进行合并.
这个问题很老了,我最近加入了.
我正在使用ubuntu,并使用meld来解决合并问题.
所以,如果我有2个相同应用程序的文件夹,可能会有微小的更改.
我会在航站楼做这个
meld ./app_branch_master ./app_branch_dev
Run Code Online (Sandbox Code Playgroud)
这将打开文件夹,Meld将花时间比较两个文件夹.它会告诉你左边有什么,右边有什么.你也可以从那里移动一些代码.
我就是这样做的.
是的,您可以从技术上做到这一点,但这只是因为现在改正错误还为时不晚。您需要回到过去,并以正确的方式执行此操作:
将project-with-feature-b文件夹移到git repo之外:
$ mv project-with-feature-b ..
Run Code Online (Sandbox Code Playgroud)git log在创建project-with-feature-b目录之前,请重新浏览并找到最后一次提交的提交ID 。如果尚未在project-with-feature-b目录“内部”进行任何提交,则可以跳过此步骤。
创建一个feature-b基于该提交ID 的新分支。如果您跳过了步骤2,则省略<commit-id-from-step-2>
$ git branch feature-b <commit-id-from-step-2>
$ git checkout feature-b
Run Code Online (Sandbox Code Playgroud)在feature-b分支中,将project文件夹替换为您的备份project-with-feauture-b
$ rm -rf project
$ mv ../project-with-feature-b project
$ git add project
$ git commit -m "Add feature-b"
Run Code Online (Sandbox Code Playgroud)返回您的master分支并将您的feature-b分支合并到master
$ git merge --no-ff feature-b
Run Code Online (Sandbox Code Playgroud)将来,您应该在开始工作之前使用上述分支。学习正确使用工具,而不是您认为它们应该如何工作。