Re: Deleting first commits; maintaining last commits
- From
Konstantin Ryabitsev <konstantin@linuxfoundation.org>
- Date
- Feb 21, 2025, 15:17 UTC
- Message-ID
- <20250221-intrepid-furry-wapiti-eebff0@lemur>
- In-Reply-To
- <Z7fGQalzCg_Fx-ub@tapette.crustytoothpaste.net>
On Fri, Feb 21, 2025 at 12:18:09AM +0000, brian m. carlson wrote:
Show 19 quoted lines
> > My Git repository on GitHub <https://github.com/espindula/br-blfs> has > > about 23,500 commits. However, there are several old (before Feb, 28 > > 2022) commits I would like to delete and maintain the newer ones > > (after Feb, 28 2022). So, Is there any Git command (or combined > > commands) I could use? > > No, Git doesn't offer such a thing. Due to the use of cryptographic > hashes used, it would be impossible to verify the integrity of the > repository if it could just be truncated like that. In addition, the > goal of Git as a version control system is to track history, not to > destroy it. > > However, if the concern is size and not something else (like removing > personal information), then you could use a shallow clone to just > download a certain number of revisions and work on that. The full > history would remain on the server, and you could still push newer > changes, but the size on your local machine would be smaller. If you > need more history, you could use a partial clone instead if you're > willing to be online to work.
Another approach is to create a new repository and use a graft/replacement commit to indicate that history continues in a different repository, right? I do sometimes wish this was a bit easier/more accessible to perform, because that would allow creating "epochs" for very large repos. Unfortunately, shallow clones tend to be very heavy on the server-side.
-K