我刚开始使用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”会完成这项工作,但是如果有人能告诉我如何将单个文件合并到当前分支中。
提前致谢
答案 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
的提交。