我的任务是使用SourceTree进行Cherry-Picking。在学习如何执行此操作时,我创建了一个我能想到的最简单的项目:包含单词“ Sunday”的单个文本文件。我将它放在master分支中的SourceTree / Git的源代码控制下。
然后我在master的基础上创建了一个功能分支,并进行了3次提交,分别是:1)星期一,2)星期二和3)星期三。
然后,我使用Cherry Pick功能将第二个提交(星期二)选择为master。我的目标是使单个文件在主文件中包含“星期日”和“星期二”。
我遇到了冲突,但我尝试解决的所有问题都无法解决。解决冲突菜单上的任何选择都无法解决问题。
我希望master中的文本文件包含:
星期日 星期二
那不是事实。我在这里缺少关键概念吗?我是否期望它以不起作用且永远不会起作用的方式工作?
此图显示了我尝试做的事情,以及从SourceTree收到的消息:
答案 0 :(得分:0)
冲突可能与换行符有关。如果您键入的“ Sunday”之后没有换行符并提交,然后又键入了一个换行符和“ Monday”,那不仅是在“ Monday”行中添加的内容;这是“星期日”行的删除和“星期日\ nMonday”的插入。那是潜在的冲突。
但是,您的期望 是错误的。通过挑选星期二提交,您不会以“星期日星期二”结束。该提交还包含星期一!
(不要让自己被合并文件中的符号所迷惑;结尾处的“星期二”一词不是任何内容,而是您应用于星期二提交的提交消息。)
最后一条评论:我不太明白您的意思:
“解决冲突菜单”上的任何选择都无法解决问题。
如果在SourceTree中选择文件并查看“解决冲突”菜单,则可以在“我们的”和“他们的”之间进行选择。使用他们的解决方法是很合理的。