umläute
umläute

Reputation: 31284

git shallow clone since specific commit

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?

Upvotes: 9

Views: 2679

Answers (3)

zenoh
zenoh

Reputation: 2183

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

Upvotes: 1

tmaj
tmaj

Reputation: 35037

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

Upvotes: -3

torek
torek

Reputation: 488233

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.

Upvotes: 5

Related Questions