Reputation: 31284
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
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
Reputation: 35037
What about creating a branch at that special commit and then git clone --single-branch
?
Upvotes: -3
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