[英]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.