首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git:使用Kdiff3从另一个分支合并到一个分支

Git:使用Kdiff3从另一个分支合并到一个分支
EN

Stack Overflow用户
提问于 2015-09-25 05:42:23
回答 3查看 853关注 0票数 3

我熟悉ClearCase,在这里我们可以将文件合并到来自任何其他分支的分支。这怎么可能在git?例如,我有以下结构

代码语言:javascript
复制
master--->branch_2
  |
  |
  V
branch_1

因此,在branch_1branch_2中有一些独立的发展。我想使用一些合并工具(如branch_2 )将一些特定的代码从branch_1合并到kdiff3。

编辑: Kdiff3有一个很棒的合并选项,通过比较文件的2或3个版本(来自同一或不同的分支),突出显示冲突。然后,我们可以跳过每个冲突,从文件的一个或多个版本中选择代码,进行一些编辑(如果必要的话),最后保存文件。当我使用ClearCase时,这个特性对我来说非常方便。是否有一种方法可以将git合并工具与kdiff3配置为相同的工作方式?

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-25 11:47:01

听起来,您想要合并来自branch_2中给定提交的更改的特定部分。

如果是这样的话,您可以使用git cherry-pick --no-commit或(-n)在branch_2中应用来自提交的更改,而无需创建新的提交。从那时起,您可以通过仅暂存部分修改的文件来决定提交哪些更改。

下面是一个例子:

代码语言:javascript
复制
git checkout branch_1
git cherry-pick -n <some-commit>  # 1. Apply the changes from some commit in branch_2
                                  # without creating a new commit
git reset HEAD                    # 2. Unstage all changes from that commit
git add -p                        # 3. Decide which changes to include in the commit
git commit                        # 4. Commit those changes
票数 1
EN

Stack Overflow用户

发布于 2015-09-25 05:50:58

站在branch_1中,您可以对cherry-pick进行简单的操作,只要您想要从branch_2中提交。

代码语言:javascript
复制
git cherry-pick <some sha1>

您还可以在branch_1中重新定位您的工作,以便它在branch_2之后出现。

代码语言:javascript
复制
git rebase --onto branch_2 branch_1
票数 1
EN

Stack Overflow用户

发布于 2015-09-25 05:49:40

在目标分支机构:

代码语言:javascript
复制
git checkout branch1

在引用branch1版本时编辑branch2代码

代码语言:javascript
复制
git difftool branch2 -- file.txt

如常提交更改

代码语言:javascript
复制
git add file.txt
git commit
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32775561

复制
相关文章

相似问题

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