【发布时间】:2020-06-15 00:36:41
【问题描述】:
我有两个分支:
分支'dev'
分支'prod'
'dev' 是整合所有功能的地方,'prod' 是生产分支。在新版本发布之前,“dev”被合并到“prod”,并从中构建发布版本。
“prod”分支有某些东西,例如我不希望在“dev”分支中出现的广告。
今天在将 'dev' 合并到 'prod' 时,我遇到了合并冲突。解决合并更改了我的源分支“dev”和目标分支“prod”。因此,我有很多我不想要的从目标到源的代码部分。
在“prod”中保留更改但在“dev”中撤消更改的最佳方法是什么? 谢谢。
【问题讨论】:
-
解决冲突不会改变任何分支。 Nothing 会更改任何现有提交,因为这是不可能的。向当前分支添加 new 提交 to 正是这样做的:它向当前分支添加了一个新提交。
-
我怀疑您在工作树中看到和编辑的文件与每次提交中的文件之间存在差异。请记住,分支名称仅包含现有提交的哈希 ID,添加新提交的过程包括 (1) 进行新提交,使其父级是现有提交,然后 (2) 编写新提交的哈希 ID 到当前分支名称中,以便新提交现在包含在分支中。 Merging 使用两个父级构建一个新提交(像往常一样使用快照),以便两个提交链都可以访问。
-
有关将更改应用于历史提交,然后将该更改合并到 both 分支的实用方法,请参阅Gem Taylor's answer,但请考虑使用Raymond Chen's multipart essay。
标签: git merge git-merge-conflict