我刚刚开始使用git。我从master创建了branch-A。我已经在branch-A中创建了文件abc.txt,并成功地将branch-A合并到master中。现在我在branch-A中处理相同的文件,并希望将主文件(abc.txt)合并到branch-A ( abc.txt)文件中。我尝试过"git checkout master abc.txt“,但是它用master的abc.txt替换了branch-A文件。
我知道"git合并主机“将做这项工作,但如果有人可以告诉我如何合并到当前分支中只有一个文件。
提前感谢
发布于 2016-10-07 19:49:27
首先,确保你的工作目录是干净的。
然后正如你所发现的..。
git checkout master abc.txt
...will将替换整个文件,但您可能没有意识到,如果您重置,现在您可以从这些差异中创建一个补丁。因此,在签出文件之后:
git reset --mixed
git add --patch abc.txt
现在,您可以有选择地选择要包含的更改、提交更改,然后通过丢弃不需要的差异来硬重置以达到最终状态。
git commit -m "merge changes to abc.txt"
git reset --hard
发布于 2016-10-07 19:28:28
您为什么只希望在branch-A
中包含此单个文件?在我看来,您更像是想在master
之上对branch-A
进行重新设置,这样在master
上发生的所有更改都将包含在branch-A
中。
下面是rebasing的文档:https://git-scm.com/docs/git-rebase
基本上,它将从以下位置获取您的信息:
A---B---C branch-A
/
D---E---F---G master
至
A'--B'--C' branch-A
/
D---E---F---G master
通过检查branch-A
并调用
git rebase master
这意味着,无论在主机上提交E、F和G时abc.txt
发生了什么变化,都会反映在branch-A
上的提交中。
Rebase只需签出master
并逐个应用来自branch-A
的提交。
https://stackoverflow.com/questions/39916006
复制相似问题