首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Git仅将主目录中的单个文件合并到当前分支

Git仅将主目录中的单个文件合并到当前分支
EN

Stack Overflow用户
提问于 2016-10-07 19:22:21
回答 2查看 10.1K关注 0票数 5

我刚刚开始使用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合并主机“将做这项工作,但如果有人可以告诉我如何合并到当前分支中只有一个文件。

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2016-10-07 19:49:27

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

然后正如你所发现的..。

代码语言:javascript
运行
复制
git checkout master abc.txt

...will将替换整个文件,但您可能没有意识到,如果您重置,现在您可以从这些差异中创建一个补丁。因此,在签出文件之后:

代码语言:javascript
运行
复制
git reset --mixed
git add --patch abc.txt

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

代码语言:javascript
运行
复制
git commit -m "merge changes to abc.txt"
git reset --hard
票数 9
EN

Stack Overflow用户

发布于 2016-10-07 19:28:28

您为什么只希望在branch-A中包含此单个文件?在我看来,您更像是想在master之上对branch-A进行重新设置,这样在master上发生的所有更改都将包含在branch-A中。

下面是rebasing的文档:https://git-scm.com/docs/git-rebase

基本上,它将从以下位置获取您的信息:

代码语言:javascript
运行
复制
      A---B---C branch-A
     /
D---E---F---G master

代码语言:javascript
运行
复制
              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的提交。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39916006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档