虽然还没有亲自尝试过,但我的直觉仍然表明,使用git交互式rebase重新排序提交有时会产生语法和语义错误的代码。如果订单被洗牌,最终结果可能会有所不同。一个简单的例子可能是,如果提交A
和B
在同一文件的同一行上进行不同的更改,那么对这些提交进行洗牌可能会受到影响。当然,如果提交是相互排斥的并且彼此独立,则不会发生这种情况。但是,无意识的重新排序可能会产生无法使用的代码。我错过了什么吗?
答案 0 :(得分:0)
我错过了什么吗?
简短回答:不,是的。
不,因为你是对的:如果你随意重新提交订单,你可能会得到一些不那么好的东西。
是的,因为在你的例子中,如果你切换2个影响同一行的提交,那么Git会检测到冲突并且不会继续,直到你声明解决它为止。即:在这种微不足道的情况下,Git不会产生损坏的代码。 (对于更复杂的案例,嗯,从来没有让非退步诉讼受伤)
简而言之:不要随意重新提交订单:只有当您知道自己在做什么时才会这样做。一切都会好起来的!
答案 1 :(得分:0)
答案是肯定的。
如果您担心rebase的结果与之前的结果不同,请尝试diff
使用之前的状态,可以使用git reflog
找到。