我有一个分支 release-x.x.x
我想 merge 到 master 中。但是,当我执行 pull 请求时,它有数百个 merge 冲突。我认为这是由于我执行了 Swift 3 迁移。无论哪种方式,当 merge 到 master
时,我都想使用 release-x.x.x
中文件的所有版本。我已经完成了 checkout release-x.x.x
和 git merge -s recursive -X ours master
。我正在反向执行此操作,以便我可以解决 release-x.x.x
上的冲突,然后在 master
上创建 pull 请求并保留所有提交历史记录。
当我运行 git status
时,这是一些输出:
added by us: Pods/FirebaseCrash/Frameworks/frameworks/FirebaseCrash.framework/FirebaseCrash
added by us: Pods/FirebaseCrash/Frameworks/frameworks/FirebaseCrash.framework/Headers/FIRCrashLog.h
added by us: Pods/FirebaseCrash/Frameworks/frameworks/FirebaseCrash.framework/Headers/FirebaseCrash.h
added by us: Pods/FirebaseCrash/Frameworks/frameworks/FirebaseCrash.framework/Modules/module.modulemap
deleted by them: Pods/FirebaseCrash/README.md
deleted by them: Pods/FirebaseCrash/batch-upload
deleted by them: Pods/FirebaseCrash/upload-sym
deleted by them: Pods/FirebaseCrash/upload-sym-util.bash
deleted by us: Pods/FirebaseInstanceID/CHANGELOG.md
added by us: Pods/Intercom/Intercom/Intercom.framework/Versions/A/Intercom
both added: MyProject/Base.lproj/Localizable.stringsdict
both deleted: MyProject/Localizable.stringsdict
both added: MyProject/en-HK.lproj/Localizable.stringsdict
我想我想保留所有由我们添加
,都添加
并且还保留任何标记为由他们删除
,所以我有暂存这些文件。如何处理被我们删除
和均已删除
?如果我尝试 git rm Pods/FirebaseInstanceID/CHANGELOG.md
,我会收到错误:Pods/FirebaseInstanceID/CHANGELOG.md: needs merge
。我是否在正确的轨道上?
最佳答案
是的,您走在正确的轨道上。要以您指定的方式解决 merge 问题,您应该 git rm
任何标记为 deleted by us
的文件或 both deleted
.
needs merge
错误应该只是一个警告。当我运行 git rm <file>
在 merge 中被一方删除的文件上,我得到:
<file>: needs merge
rm '<file>'
以及随后的 git status
显示文件已被删除(并且删除已暂存)。
关于git - 解决添加和删除的冲突 Git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40157185/