git - Mac SourceTree 合并似乎打破了分支
问题描述
在 Xamarin.forms 项目上使用 Visual Studio Mac。
所以:
- 我的“开发”分支中有一个名为 DeviceTokens 的错误
- 我回去发现了一个没有错误的提交
- 我从中创建了一个名为“doesNotHaveDeviceTokenBug”的分支
- 我修复了错误并且项目运行良好......从那个分支
所以现在我想将修复合并回我的另一个分支,对吗?
所以我切换回“开发”,我这样做:
..然后这个:
...我收到有关冲突的警告:
...我用“他们的”解决它们,因为这就是我想要的,对吧?
......然后事情就是这样......
...现在我的项目将无法运行。
如果我切换回“doesNotHaveDeviceTokenBug”分支,该项目仍然运行良好。
但是当我处于“开发”阶段时,我会遇到很多错误。
...我不明白。我修复了一个错误,现在我想将该修复合并回其原始分支——这不是这件事的全部意义吗?
我究竟做错了什么?
解决方案
我在 Mac 上经常使用 SourceTree,而且我非常喜欢它,但在一百万年后我永远不会像那样“盲目地”合并。当您合并doesNotHave...
并development
遇到合并冲突时,请停止并查看有冲突的文件并直接在这些文件中解决冲突。您的最后一个屏幕截图显示了带有冲突标记的冲突文件;您只需使用您最喜欢的文本编辑器直接编辑它们,当您完成后,您将它们标记为已解决并让合并继续。
因此,我建议重新进行硬重置development
并c2c8c50c
再次进行合并,这一次,看看冲突期间发生了什么,并确保在解决它时这一切都对你有意义。
此外,您似乎认为合并与由策略解决的冲突theirs
将与. theirs
换句话说,您是在说:嘿,这doesNotHave...
在合并之前测试得很好,所以它应该development
在合并之后测试得很好。
但合并的意义远不止于此。合并的双方都可以做出贡献。因此,无论您如何解决特定文件中的冲突,您仍可能将您的贡献doesNotHave...
与develop
不能很好地结合在一起的贡献结合起来。
推荐阅读
- r - if 内嵌套 ifelse 语句
- ios - Unity 集成本机应用程序中的 Clang 错误
- shell - 从任务的输出中获取一个值并在 Ansible Playbook 中调试消息
- macos - OSX:关闭 mysql 工作台主窗口后无法打开它
- python - 从opencv中的二维索引数组获取矩形
- html - How to format json file view on html
- gruntjs - Warning: StringMap expected string key Use --force to continue
- git - Import of gitlab project fails in Codenvy
- neo4j - 获取当前数据库中定义的所有关系类型
- node.js - Microsoft Botbuilder location: On Click Address selection with multiple results returned