首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git文件夹在分支之间合并

Git文件夹在分支之间合并
EN

Stack Overflow用户
提问于 2014-11-12 12:37:47
回答 2查看 106关注 0票数 0

我有两个分支

  1. 主控 [医] folder1 [医] folder2
  2. 释出 [医] folder1 [医] folder2

两者都有相同的文件夹结构。

如何将主分支中的一个文件夹合并到发布分支,比如folder1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-24 11:05:46

根据评论中的讨论,我假设有两件事:

  • folder1folder2的变化是独立的。
  • 主分支上只有更改(至少对folder1是这样)。

随后,以下指令将覆盖对发布分支上的folder1所做的任何更改。他们基本上将folder1中的文件从master复制到release

去看看release分公司。

代码语言:javascript
复制
git checkout release

然后,从主分支签出folder1中的所有文件。这样做,release就会离开签出的分支。此外,所有这些文件都会被添加到暂存索引中。

代码语言:javascript
复制
git checkout master -- folder1

提交变更。

代码语言:javascript
复制
git commit -m "Copy over changed files in folder1 from master branch."
票数 0
EN

Stack Overflow用户

发布于 2014-11-17 12:24:59

因为对这两个文件夹的更改是独立的,所以git的方法应该是将更改保存在两个单独的分支中,而不是将它们复制到一个主分支。这样你就可以只在其中一个分支中合并。

现在,你怎么能得到两个分支的状态?您将需要在开发更改时提交,即最后一个合并到发行版中的提交。使用git log查找提交id。这应该是主分支的一个提交。然后在那里创建一个标记:

代码语言:javascript
复制
git checkout <commit id>
git tag begin_of_new_development

签出主分支并创建一个新的签出分支f1

代码语言:javascript
复制
git checkout master
git checkout -b f1

然后在新分支上使用交互式重基删除与folder_1无关的提交

代码语言:javascript
复制
git rebase -i begin_of_new_development

从列表中删除所有不适用于folder_1的提交。

现在应该留给您一个分支f1,您可以将其合并到release分支中。如果您对folder_2也这样做,那么以后也可以将这些更改合并到发行版中。但是,请注意,不要在f1f2中保留一个提交,因为重基会为它们提供新的提交in,因此git无法知道它们包含相同的更改。而且,您不能再将master合并到release中了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26887209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档