On Fri, Feb 21, 2025 at 7:18 AM Konstantin Ryabitsev <konstantin@xxxxxxxxxxxxxxxxxxx> wrote: > > On Fri, Feb 21, 2025 at 12:18:09AM +0000, brian m. carlson wrote: > > > 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. For hosts which support it - which I believe includes GitHub - partial clone is generally easier on the server and a little bit less bug-prone than shallow clone. > > -K >