所以我在一个分支中工作,进行一些更改,然后运行 git merge master
。我在我修改的一个文件上遇到了 merge 冲突(我知道如何处理),但出于某种原因,我没有触摸了一堆文件(但在 master 中更新了)突然进入我的“要提交的更改”列表。
这是为什么?我该如何解决这个问题?我不希望提交任何这些非我更改。
最佳答案
我自己也遇到了同样的问题,想出了一个中间解决方案。以后需要找到更好的。
首先要解决@NoufalIbrahim 提出的问题:至于“我不希望提交任何这些非我的更改。”,如果你不想,你为什么要进行 merge 有什么变化吗?
您误解了@grautur 的意图。需要进行更改,但不作为新提交的一部分。例如,本地添加了 1 个文件, merge 后有 100 个文件。新提交应该有 1 个更改的文件而不是 101 个更改的文件。如果无法进行自动 merge ,但发起 pull 请求并且必须有人审查提交,这一点尤其重要。您希望审阅者审阅 1 个文件,而不是 101 个文件。
我目前正在做的是:假设我们有分支“master”和“feature”。 'feature' 是从 'master' 创建的,我只对 'feature' 中的文件进行更改。当新的更改被 pull 入“master”时,“feature”内的 git merge master
将引入新文件(这些文件会在我使用的 IDE VSCode 中自动暂存)。
我接下来要做的是取消暂存所有这些文件。基本无视他们。只添加和提交我更改的文件。将“功能”推送到源/远程仓库,创建 pull 请求。当接受请求并将提交 merge 到主分支时,在本地和远程删除“功能”。将更改 pull 到本地“master”并创建一个新分支来处理新功能。这个新分支不会有一堆未暂存的文件。
可以有一个 git 命令告诉 git 忽略一堆文件而不使用 .gitignore。对此进行进一步研究。
关于git - Git merge 冲突后,很多我没碰过的文件变成了要提交的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9189867/