比如说 M 和 B 分支,B 基于 M 新建里一个分支,M 和 B 各自开发着不同的模块。有几个问题:
1. M 和 B 的虽然在开发不同的模块,但是可能会动到同一模块的地方,比如说配置,那么合并的时候不仅是说合并不同的模块,还得解决同一模块冲突的地方。
2. git 是有冲突对比的,包括用的 GUI 软件都有非常直观的冲突对比,通过几次合并发现了一些问题,git 是能解决文本冲突的对比,但是到了代码运行时,有时也会出错,即使我们觉得某个地方冲突了,采用哪方的代码才是正确的。
但是程序不能说有时出错啊,所以代码在开发的过程中,心中总是有种隐隐的担心合并的代码会出现问题。git 很强大,帮助我们管理大量的代码,但是就好像海下的冰山一样,很多东西我们都无法预料的到。
3. 总结一下就是,git 能解决代码不同,但是不能保证合并的代码正常运行。
顺便再吐槽一下 Jetbrains 家之前的 git 的本地包 rebase 的翻译(现在忘记怎么翻译的了,衍入还是合并好像,反正容易搞混),一时和 merge 搞混,点了之后才发现是 rebase,悔恨交加,后面换回英文版了。不过在其他非主力的软件如 webstorm 本地包还没卸载,更新了最新版之后看了看 rebase 单词换回英文来。所以说一个信达雅的翻译确实很难啊。
1. M 和 B 的虽然在开发不同的模块,但是可能会动到同一模块的地方,比如说配置,那么合并的时候不仅是说合并不同的模块,还得解决同一模块冲突的地方。
2. git 是有冲突对比的,包括用的 GUI 软件都有非常直观的冲突对比,通过几次合并发现了一些问题,git 是能解决文本冲突的对比,但是到了代码运行时,有时也会出错,即使我们觉得某个地方冲突了,采用哪方的代码才是正确的。
但是程序不能说有时出错啊,所以代码在开发的过程中,心中总是有种隐隐的担心合并的代码会出现问题。git 很强大,帮助我们管理大量的代码,但是就好像海下的冰山一样,很多东西我们都无法预料的到。
3. 总结一下就是,git 能解决代码不同,但是不能保证合并的代码正常运行。
顺便再吐槽一下 Jetbrains 家之前的 git 的本地包 rebase 的翻译(现在忘记怎么翻译的了,衍入还是合并好像,反正容易搞混),一时和 merge 搞混,点了之后才发现是 rebase,悔恨交加,后面换回英文版了。不过在其他非主力的软件如 webstorm 本地包还没卸载,更新了最新版之后看了看 rebase 单词换回英文来。所以说一个信达雅的翻译确实很难啊。


