[英]Git diff on rewriting history
我很想知道在这种情况下 Git diff,我在 Git 文档中找不到
假设在分支 A 上,我有三个提交Branch A: Commit 3 <-- Commit 2 <-- Commit 1
Commit 3
是最新的分支。
Head~2
提交并将它们压缩为一个,那么分支看起来像Branch A: Commit 3' <-- Commit 1
Commit 3'
包括commit 3和rebase后的commit 2。
现在,如果我运行命令git diff commit3 commit3'
会起作用吗? 如果是,那么它为什么会在 diff 中显示什么变化?
commit 3
并在 rebase 后将commit 2
保留为最新的 master。 那么git diff commit 3 commit 2
会显示什么?注意:这里提交 3 已被删除,如果发现差异,git 将如何跟踪?
它会起作用,因为每次提交实际上是您工作存储库当前状态的快照,无论是什么使此存储库进入此特定状态。 因此,您可以将任何修订版与其他任何修订版进行比较。
如果您只是简单地重新定位以合并您的提交,则commit3
和commit3'
之间应该没有区别,因为它们的最终状态是相同的。
这与“应用更改”不同,例如,cherry-pick 会这样做。 在后一种情况下,首先通过将所选提交与其父提交进行比较来获得变更集,然后将差异结果应用于当前工作目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.