git - 使用“git revert”和冲突。这是怎么发生的?
问题描述
我正在编写一个文本文件,其名称为“f2.txt”。我对文件的每一行都做了一个提交。它的内容是:
l1
l2
l3
l4
换句话说,它有四个提交。
每行的每次提交。
所以我试图恢复一个提交。我有冲突。即使我认为这样做我也不会遇到任何冲突,因为它是每一行的提交。(不是同一行)
但是,是的,我确实会发生冲突,即使是做这样简单的事情。
这里会发生什么?
为什么我会发生冲突?
谢谢。
解决方案
我假设您已尝试恢复不是最后一次的提交。
当上下文发生变化时,就会发生冲突。
你有 4 个提交:
- 添加 l1 - 新行到空文件
- 添加 l2 - 在 l1 之后和文件末尾之前
- 添加 l3 - 在 l2 之后和文件末尾之前
- 添加 l4 - 在 l3 之后和文件末尾之前
现在您尝试恢复第三次提交。Git 不知道该怎么做,它可以看到之前的 l2,但它期待文件结束,而不是你有 l4。
显然比这要复杂一些。patch 命令足够聪明,可以检测移动的线条等等,但基本上就是这样。
更新
除了手动解决冲突之外,我真的没有看到任何解决方案。
您可以在git-tower中阅读有关合并和冲突的信息
推荐阅读
- python - SQLAlchemy - 将 ForeignKeyConstraint 添加到基于另一个关系的多对多表中
- c++ - 当我在 C++ 中删除我的内存分配数组时,我遇到了“xmemory”文件
- c++ - 使用基于 LLVM 的编译器的算术运算结果不正确
- kotlin - 如何在 oneTouchListener 中阻止其中一个轴
- java - Spring Boot中的Spring安全配置不适用于管理员角色
- visual-studio-code - 在 vscode 终端中显示 conda 环境
- sql - SQL中多列中的多个过滤器
- actionscript-3 - ActionScript 3 当您将鼠标移动到某个方向时按下一个键
- ssl-certificate - 别名的 SSL(域指针)
- typescript - 为什么可以在打字稿中合并两个 const 枚举?