git - Git rebase 冲突
问题描述
我正在重新设置一个分支。我想将所有提交压缩为一个。
git rebase -i --root
除了第一个提交之外的所有提交都设置为squash
.
一路上,一些冲突突然出现,好像我在合并。为什么会这样?我认为 git 只是一个接一个地应用一个提交。
解决方案
这就像合并,因为它正在合并。以示例的方式考虑:
A <- B <- C
\
\<-D
假设您要求在 C 之上重新定义 D。Git 会问自己 B 和 D 之间有什么区别:您必须对 B 做什么才能到达 D?然后它将这种差异“重播”到 C 上:也就是说,它尝试生成一个新的提交,该提交对 B 执行相同的操作,但附加到 C。
好吧,取决于 C 对 B 做了什么,如何做到这一点可能并不明显。C 对 B 所做的更改可能会“妨碍”对 B 的更改。如果 C 将 B 中文件的第 1 行更改为“hello”,而 D 更改了 B 中“相同”文件的第 1 行“再见”,现在这个新的提交应该对 C 做什么?
如果你认为答案很明显——也就是说,如果你认为 B 或 D 在这方面是“正确的”——那么就解决冲突。冲突不是坏事!他们只是回答 git 担心它的答案可能违背你的意愿的问题。
推荐阅读
- rational-team-concert - RTC SCM 命令行客户端选择了哪些默认文件属性?
- python - 在python中按列将列表插入mysql
- java - 使用 ebay 沙箱没有得到任何卖家列表作为响应?
- azure - 如何读取在 RM 订阅上创建的云服务的服务配置 (.cscfg)
- android - 更新android studio后android资源编译失败
- elasticsearch - Elasticsearch 使用 Fragmentor 突出显示问题
- javascript - 在 Google 跟踪代码管理器上准备好 DOM 时触发特定的类元素
- javascript - 表格单元格的高度大于它的宽度(但为两者设置相同的数字)
- shell - 使用 ansible 中的调试模块获取值..!
- mysql - SQL 嵌套集表