首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Git合并冲突之后,许多我没有接触的文件变成了需要提交的更改

在Git合并冲突之后,许多我没有接触的文件变成了需要提交的更改
EN

Stack Overflow用户
提问于 2012-02-08 16:29:48
回答 4查看 27.6K关注 0票数 39

因此,我在一个分支中工作,进行一些更改,然后运行git merge master。我在我修改的一个文件上遇到了合并冲突(我知道如何处理),但由于某种原因,一堆我没有接触的文件(但在master中更新了)突然进入了我的“要提交的更改”列表。

为什么会这样呢?我该怎么解决这个问题呢?我不想让任何这些不是我做的更改被提交。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-08 16:43:45

当您尝试合并时,可以自动合并的所有文件(例如,在本地分支中没有任何更改,但已在源分支上进行了修改的文件)将自动合并和暂存。无法自动合并的文件会在您的工作区中使用冲突标记进行更新,您必须修复它们。

Git总是在提交新提交之前在临时区域中组装它们。合并也会做同样的事情。将在登台区域中创建一个新的提交,其中包含来自源分支的所有更改。如果发生冲突,此更新临时区域的过程将中断,并将控制权交给您。这就是为什么会发生这种情况。提交后,将在将源分支和目标分支作为父分支的存储库中创建“合并提交”。

至于“我不想提交任何这些不是我做的更改”,如果你不想做任何更改,为什么要做合并呢?

票数 -3
EN

Stack Overflow用户

发布于 2018-04-27 22:39:47

我自己也遇到了同样的问题,并提出了一个中间解决方案。需要找到一个更好的未来。

首先来解决@NoufalIbrahim提出的问题:至于“我不希望提交任何这些不是我做的更改”,如果你不想做任何更改,为什么要进行合并呢?

你误解了@grautur的意图。这些更改是必需的,但不是作为新提交的一部分。例如,本地添加了1个文件,来自merge的100个文件。新的提交应该有1个更改的文件,而不是101个更改的文件。如果不可能进行自动合并,但启动了拉取请求,并且必须有人审查提交,则这一点尤其重要。您希望审阅者审阅1个文件,而不是101个文件。

我现在做的是这样的:假设我们有分支'master‘和'feature’。'feature‘是从'master’创建的,我只对'feature‘中的文件进行修改。当新的更改被拉到“主”中时,“功能”中的git merge master将引入新文件(这些文件会自动暂存在VSCode中,这是我使用的集成开发环境)。

我下一步要做的是取消所有这些文件。基本上忽略它们。仅添加和提交我更改的文件。将'feature‘推送到源/远程repo,创建拉取请求。当请求被接受并且提交被合并到主分支时,在本地和远程删除'feature‘。将更改拉到'master‘local,并创建一个新分支来处理新特性。这个新分支将不会有一堆未暂存的文件。

可以有一个git命令来告诉git忽略一堆文件,而不使用.gitignore。对此做进一步的研究。

票数 9
EN

Stack Overflow用户

发布于 2012-04-12 06:00:59

我认为这种GIT方式的问题是,在提交之后,将执行“推送”。“推送”将包括所有提交的文件--包括“推送器”没有接触到的文件。这使得跟踪更改变得非常复杂。

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

https://stackoverflow.com/questions/9189867

复制
相关文章

相似问题

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