Git - 將檔案重新設定為該檔案的過去歷史記錄

Git - 將檔案重新設定為該檔案的過去歷史記錄

假設我filename在 git 儲存庫的子目錄中有一個文件,dir1其歷史記錄如下:

v7 --- v8 --- v9 --- v10

該檔案是具有多個子目錄的較大儲存庫的一部分,但只有上述變更集會影響該檔案。現在我也挖出了該檔案的舊版本filename,該檔案已被錯誤地提交到另一個子目錄dir2。這個舊版本僅「存在」在一個變更集中,例如:

v4

現在的問題是,我可以重寫這兩個檔案(到 git)的歷史記錄,使其看起來好像filename只存在,從而dir1產生以下歷史記錄:

v4 --- v7 --- v8 --- v9 --- v10

我想我可以嘗試刪除 中的文件dir2並將其作為 中文件的新版本提交dir1,但這會弄亂文件的實際歷史記錄,因此實際上最舊的文件版本將顯示為最新版本。

我對「調整」 git 儲存庫的歷史經驗很少,所以我不知道該怎麼做,但我猜 rebase 可能是答案?我是唯一一個在儲存庫上工作的人,所以我唯一關心的是在兩台電腦之間同步這些變更。

我想我想做的實際上只是將文件保留在dir2歷史記錄中原來的位置,但我想更改v4上面調用的提交以使該文件成為dir1.

相關內容