簡體   English   中英

git-如何刪除舊提交而不影響最近提交的sha-1?

[英]Git - how to delete old commits without affecting recent commit's sha-1?

我有巨大的git倉庫(二進制文件),我想刪除舊的提交以縮小它的大小。

假設我的提交歷史;

$ git log
g0g0g0 - patch 06
f0f0f0 - patch 05
e0e0e0 - patch 04
d0d0d0 - patch 03
c0c0c0 - patch 02
b0b0b0 - patch 01
aaaaaa - initial empty

每個提交都有標簽;

$ git tag
tag01 -> b0b0b0
tag02 -> c0c0c0
tag03 -> d0d0d0
tag04 -> e0e0e0
tag05 -> f0f0f0
tag06 -> g0g0g0

這就是我想要的;

$ git log
g0g0g0 - patch 06 <- tag06
f0f0f0 - patch 05 <- tag05
e0e0e0 - patch 04 <- tag04
aaaaaa - initial empty

$ git tag
tag01 -> deleted b0b0b0
tag02 -> deleted c0c0c0
tag03 -> deleted d0d0d0
tag04 -> e0e0e0
tag05 -> f0f0f0
tag06 -> g0g0g0

是否可以刪除舊的三個提交(b0b0b0,c0c0c0,d0d0d0),而無需更改其他提交的sha-1值(g0g0g0,f0f0f0,e0e0e0)?

不,不可能。 提交的父級用於計算其哈希。 如果歷史記錄的任何部分發生更改,則提交哈希將有所不同。

暫無
暫無

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

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