簡體   English   中英

有沒有辦法從git歷史中刪除“無意義”的提交?

[英]Is there a way to remove “pointless” commits from git history?

假設我有這樣的git歷史:

A-B-C-D-E-F-G

B添加了60k文件。

F刪除了那些相同的文件。

任何遍歷git歷史記錄的操作,例如git log ,如果必須越過F(或B),現在需要花費大量的時間。

有沒有辦法有效地從歷史中刪除B和F,因為它們只是相互取消了?

更重要的是:是否有一種簡單的方法可以做到這一點,然后確保使用回購的其他開發人員也是最新的? (請記住,開發人員還在其機器上設有功能分支。)我懷疑所有解決方案最終都會導致A-C'-D'-E'-G' ......

我的直覺說我要得到的最好的是從A創建一個分支,從中選擇C到E,然后從G創建一個新的分支,並將其合並到第一個分支上。 或者其他的東西。

只需執行git rebase -i A並刪除B和F的行。
但是正如你所說的(或者意味着),這將重寫已發布的歷史記錄,因此所有開發人員都需要根據操作分支重新設置所有分支,如git rebase手冊頁中“如何從上游rebase恢復”一節所述”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM