在git中,如何刪除和重命名文件,從某個分支中的某個提交開始,同時保留每個文件(刪除和重命名)的更改歷史記錄?如何刪除歷史記錄中的刪除和重命名?
我的用例是我帶了一個分支,並從那裏開始一個新的分支,我刪除了一些文件並重新命名了一些其他分支。然後我修改了其餘的(並且經常重命名的)文件(還添加了一些文件)。現在我想恢復到原來的名稱並恢復已刪除的文件(這些文件仍然存在於公共基礎上),同時保留所有內容的歷史記錄。我的最終目標是能夠合併回原始分支(所以without the renames and file deletions that I introduced)。
可以這樣做嗎?我想知道這是多麼容易,尤其是因爲重命名的文件被修改(如此天真地刪除重命名將切斷原始文件和修改之間的歷史鏈接,我反而想保留)...
PS:變化因爲分支分支很廣泛(至少在「清潔」分支上)。
Git不會跟蹤文件名的歷史。這是一個內容跟蹤器;它會在運行時計算來自deltas的文件名更改。 –
「*由於重命名的文件被修改得如此天真,刪除重命名將切斷原始文件和修改之間的歷史鏈接*」這不一定是真的。 Git甚至可以通過文件修改來計算重命名。此外,如果您使用正常提交將文件重命名爲原始名稱,您的分支應該合併正常。 – Schwern