我熟悉ClearCase,在这里我们可以将文件合并到来自任何其他分支的分支。这怎么可能在git?例如,我有以下结构
master--->branch_2
|
|
V
branch_1因此,在branch_1和branch_2中有一些独立的发展。我想使用一些合并工具(如branch_2 )将一些特定的代码从branch_1合并到kdiff3。
编辑: Kdiff3有一个很棒的合并选项,通过比较文件的2或3个版本(来自同一或不同的分支),突出显示冲突。然后,我们可以跳过每个冲突,从文件的一个或多个版本中选择代码,进行一些编辑(如果必要的话),最后保存文件。当我使用ClearCase时,这个特性对我来说非常方便。是否有一种方法可以将git合并工具与kdiff3配置为相同的工作方式?
提前感谢
发布于 2015-09-25 11:47:01
听起来,您想要合并来自branch_2中给定提交的更改的特定部分。
如果是这样的话,您可以使用git cherry-pick --no-commit或(-n)在branch_2中应用来自提交的更改,而无需创建新的提交。从那时起,您可以通过仅暂存部分修改的文件来决定提交哪些更改。
下面是一个例子:
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发布于 2015-09-25 05:50:58
站在branch_1中,您可以对cherry-pick进行简单的操作,只要您想要从branch_2中提交。
git cherry-pick <some sha1>您还可以在branch_1中重新定位您的工作,以便它在branch_2之后出现。
git rebase --onto branch_2 branch_1发布于 2015-09-25 05:49:40
在目标分支机构:
git checkout branch1在引用branch1版本时编辑branch2代码
git difftool branch2 -- file.txt如常提交更改
git add file.txt
git commithttps://stackoverflow.com/questions/32775561
复制相似问题