Git只将主文件中的单个文件合并到当前分支

时间:2016-10-07 11:22:21

标签: git version-control merge

我刚开始使用git。我从master创建了branch-A。我在branch-A中创建了文件abc.txt,并成功地将branch-A合并到master中。 现在我在branch-A中使用相同的文件,并希望将master(即abc.txt)文件合并到branch-A(abc.txt)文件中。 我尝试了“git checkout master abc.txt”但它用master的abc.txt替换了branch-A文件。

我知道“git merge master”会完成这项工作,但是如果有人能告诉我如何将单个文件合并到当前分支中。

提前致谢

2 个答案:

答案 0 :(得分:6)

首先,确保您的工作目录是干净的。

然后你发现了......

git checkout master abc.txt

...将替换整个文件,但您可能没有意识到的是,如果您重置,现在可以根据这些差异制作补丁。 签出文件后

git reset --mixed
git add --patch abc.txt

现在,您可以选择性地选择要包含,提交的更改,然后通过丢弃不需要的差异来努力重置以达到最终状态。

git commit -m "merge changes to abc.txt"
git reset --hard

答案 1 :(得分:0)

您是否只希望将此单个文件包含在branch-A中? 听起来我更想要在master之上进行master的变基,因此branch-A上发生的所有更改都将包含在 A---B---C branch-A / D---E---F---G master 中。< / p>

以下是变基的文档:https://git-scm.com/docs/git-rebase

基本上,它会带你从:

              A'--B'--C' branch-A
             /
D---E---F---G master

branch-A

签出git rebase master并致电

abc.txt

这意味着,在提交中branch-A发生的任何更改都会在主要内容E,F和G上反映在master的提交中。

Rebase只需检出branch-A并逐一应用#bg的提交。