git shallow clone since specific commit

Viewed 1376

I'd like to clone a repository with a longish history. I'm only interested in a few short-lived not-yet-merged feature branches and master.

In order to not confuse myself with all that past history and merged branches, I'd like to do a shallow clone starting at a specific commit SHA.

However, so far I've only found documentation on how to do shallow clones that only include the last n commits (--depth) resp, the commits since a specific date (--shallow-since).

Is there a way to specify a shallow-clone starting at a given commit?

3 Answers

There is not, which is kind of a shame since it would be easy for Git to implement.

Usually using --depth is sufficient: just start with a depth you think is enough, and if it's not, repeatedly fetch with --deepen or --depth as needed.

Still not possible yet, but if we know the datetime of the commit we want to create shallow clone of, we can use git --shallow-since=<date>, example if we know commit X was pushed at "2021-12-19T20:37:05Z", we can:

git clone --shallow-since="2021-12-19T20:37:05Z" <url>

will only give history from commit X

What about creating a branch at that special commit and then git clone --single-branch?

Related