GIT-强制手动合并原本可以干净合并的分支

GIT-强制手动合并原本可以干净合并的分支,git,Git,我有以下情况 git branch * master git branch upgrade-project git checkout upgrade-project # At this point I run an update script from a third party that replaces # many files I have already modified. git checkout master # I want all conflicts to be mark

我有以下情况

git branch
* master

git branch upgrade-project
git checkout upgrade-project

# At this point I run an update script from a third party that replaces 
# many files I have already modified.
git checkout master

# I want all conflicts to be marked regardless of weather GIT can merge them automatically.
git merge upgrade-project    
存在的问题是,它将干净地合并由升级项目分支的更新脚本替换的所有文件,因为它位于master之前,这在正常情况下非常有意义

我想要的是,当我将
upgrade project
合并到
master
中时,所有冲突的文件都被标记为这样

这是我可以手动比较,并根据需要进行修改


这可能吗?

合并您的分支,但不要提交更改:

git merge --no-commit upgrade-project
清除索引,将更改保留在工作目录中:

git reset
解决标有


升级项目
分公司领先于
主机


升级项目
合并回
主项目
将干净地合并(无冲突)。
我想强制所有不完全相同的文件发生冲突

在执行拉取之前,您可以获得要拉取的文件列表:

git checkout master
git diff --name-only upgrade-project
或:


最后一个代码示例将为您的每个提交创建一个补丁(要合并的分支之间的差异)。

问题是什么?我不清楚。一旦发生冲突,它们将显示为升级项目分支在主分支前面。将
升级项目
合并回
主项目
将干净地合并(无冲突)。我想强制所有不完全相同的文件发生冲突。只是尝试了一下,但没有成功。只需使用升级项目中的文件覆盖所有文件,因为对于git,只有当无法自动解决冲突时,冲突才是冲突。因此,您可以使用
git reset-p
合并延迟提交并清除索引中的一些更改。如果不遵循,我应该何时运行
git reset-p
?在合并之后或之前,以及在哪个分支上?在
git merge--no commit yourbrange
之后,我这样做了,但它只是打印出
没有更改。
在我的情况下,
--no commit
选项不起作用,我仍然看不到GIT前后的
你可以在拉之前查看文件,如果它能帮助你,我已经根据你的评论更新了答案。立即阅读有没有一种方法可以将差异导出到一个文件中,以便在合并后重新删除?您可以使用
git格式的补丁主控程序…升级项目
,但它会根据您的提交生成补丁
git reset --hard
git checkout master
git diff --name-only upgrade-project
git log --stat master ^upgrade-project
git format-patch master...upgrade-project