libgit2 / libgit2/pygit2

pygit2: How to implement `git clone --single-branch`?

Open
#1,290 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.7k
Forks
408
Avg merge
2d 57m
Merged PRs (30d)
7

Description

$ git clone -h
usage: git clone [<options>] [--] <repo> [<dir>]
...
    -b, --branch <branch>
                          checkout <branch> instead of the remote's HEAD
...
    --single-branch       clone only one branch, HEAD or --branch

Hi, all. git clone has an option (i.e. --single-branch) to specify only clone one branch.
Just wonder if anyone knows how to implement this functionality with pygit2?

With --single-branch, git branch -a will has only one branch, not all remote branches.

--

Might be helpful:
https://github.com/libgit2/libgit2/issues/2924
https://github.com/nodegit/nodegit/issues/1669

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with pygit2's clone functionality and compare it with the documented git clone --single-branch behavior. Review the linked libgit2 and nodegit issues for implementation context; done means cloning only HEAD or the selected branch so git branch -a does not show all remote branches.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, python
Domain
devtools
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.