我可以执行'合并'只更新当前分支中的现有文件?
例如,我有branch1:/ file1,/ x / file2,/ file3。而branch2:/ file1,/ x / file2,/ z / file4。我想用第一个文件更新第二个分支中的文件file1和file2。
作为一个解决方案,我看到在branch1中为这些文件创建单独的提交,而不是在第二个分支中使用chery-pick。
UPD: 感谢@fge,我已经找到了解决方案(并不像我预期的那么简单):
git co branch2
git co branch1 -- ./
git reset ./
git ci -a
git clean -f
答案 0 :(得分:1)
您可以在branch2
上执行此操作:
git checkout branch1 -- file1 x/file2
然后git add
修改后的文件并提交结果。
如果你想拥有branch1的提交消息,你可以使用git commit -c branch1
进行提交。
请注意,branch1
确实是一个refspec。 git中的一个分支只不过是一个提交,但是由于提交具有到其父级的链接,它实际上是一个“分支”。
答案 1 :(得分:1)
按照正常情况继续进行合并。接下来,通过删除额外的文件来修改nw提交到您想要的形状:
git merge other_branch
rm file another_file #etc
git add -A
git commit --amend -C HEAD
您现在有一个合并comit(定义了2个父提交)。命令如
git branch --contains
现在可以正常使用。仅在您需要正确合并时才执行此操作。