logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

gbp-clone - Clone a Git repository from a remote and set up the necessary branch tracking

Author

       Guido Günther <agx@sigxcpu.org>

                                                 9 January 2025                                     gbp-clone(1)

Configuration Files

       Several  gbp.conf  files  are  parsed  to  set  defaults  for  the  above command-line arguments. See the
       gbp.conf(5) manpage for details.

Description

       Unlike  a  regular  gitclone, the gbpclone will parse the debian/gbp.conf options and clone the remote
       repository with correct branches tracked.

       Likewise, it is recommended to use gbppull and gbppush to later update the repository as it will  spare
       from  having  to  run gitpull and gitpush multiple times or with lenghty arguments to sync each tracked
       branch.

Examples

       Clone the Debian packaging repository and the upstream repository in one go:

       gbpclone -add-upstream-vcs vcs-git:entr

       The  branches,  tags and pristine-tar will be automatically setup correctly following the contents of de‐
       bian/gbp.conf in the package, and there will be an additional git remote with the name  upstreamvcs  that
       points to the upstream Entr repository on GitHub.

       A parameter on the command line would override anything in the debian/gbp.conf file. For example, clone a
       repository and setup a tracking branch for pristine-tar as well:

       gbpclone --pristine-tar git://honk.sigxcpu.org/git/git-buildpackage.git

       Clone from the Git-Vcs URL of a package:

       gbpclone vcs-git:libvirt

       Clone a repository from Salsa (Debian's code hosting):

       gbpclone salsa:agx/git-buildpackage

       Clone from a GitHub repository:

       gbpclone github:agx/git-buildpackage

Name

       gbp-clone - Clone a Git repository from a remote and set up the necessary branch tracking

Options

--version
              Print version of the program, i.e. version of the git-buildpackage suite

       -v, --verbose
              Verbose execution

       -h, --help
              Print help and exit

       --color=[auto|on|off]
              Whether to use colored output.

       --color-scheme=COLOR_SCHEME
              Colors to use in output (when color is enabled). The  format  for  COLOR_SCHEME  is  '<debug>:<in‐
              fo>:<warning>:<error>'.  Numerical values and color names are accepted, empty fields imply the de‐
              fault  color.  For example, --git-color-scheme='cyan:34::' would show debug messages in cyan, info
              messages in blue and other messages in default (i.e. warning and error messages in red).

       --all  Track all branches, not only debian and upstream.

       --debian-branch=branch_name
              The branch in the Git repository the Debian package is being developed on, default is master.

       --upstream-branch=branch_name
              The branch in the Git repository the upstream sources are put onto. Default is upstream.

       --depth=depth
              Git history depth, for creating shallow git clones.

       --reference=repository
              Local repository to use as alternate instead of re-copying data from remote repository.

       --pristine-tar
              Track pristine tar branch.

       --[no-]hooks
              Enable running hooks.

       --postclone=COMMAND
              Execute COMMAND after cloning the source from the remote.

              Exported environment variables are: GBP_GIT_DIR (the repository the package is being built from).

              Note that if you clone a repository that contains a hook  configuration  in  debian/gbp.conf  this
              hook will not be run automatically to prevent execution of untrusted code.

       --defuse-gitattributes=[auto|on|off]
              Disable  Git attributes that may interfere with building packages. Works by updating .git/info/at‐tributes to override attributes in the upstream sources which may cause files to be transformed on
              checkout.  More specifically, a new macro attribute is defined, [attr]dgit-defuse-attrs, which  is
              then applied to * together with export-subst and export-ignore. This is done to be compatible with
              dgit and git-deborig which disable Git attributes this way.

              If set to auto, first check whether there are any .gitattributes files in the upstream source, and
              act  only  if  there  are  some. If set to on, unconditionally there are some. If set to off, does
              nothing.

       --repo-email=[GIT|DEBIAN]
              When set to DEBIAN use the DEBEMAIL environment variable to set the user.email  Git  configuration
              otherwise use Git's defaults.

       --repo-user=[GIT|DEBIAN]
              When set to DEBIAN use the DEBFULLNAME environment variable to set the user.name Git configuration
              otherwise use Git's defaults.

       --[no-]aliases
              Whether to expand gbp specific aliases for remote repos like salsa:.

       --[no-]add-upstream-vcs
              Whether  to  add the upstream git repository as additional remote. The repository url is read from
              the "Repository" field in debian/upstream/metadata.

       repository
              The (possibly remote) repository to clone from. This is usually a Git URL but some  shortcuts  are
              supported (see below).

       directory
              The directory to clone to.

See Also

gbp-buildpackage(1), gbp-pull(1), gbp-setup-gitattributes(1), gbp.conf(5), gitattributes(5)

Synopsis

gbpclone [--version] [--help] [--verbose] [--color=[auto|on|off]] [--color-scheme=COLOR_SCHEME] [--all]
                 [--[no-]pristine-tar] [--debian-branch=branch_name] [--upstream-branch=branch_name] [--depth=depth] [--reference=repository] [--postclone=COMMAND] [--[no-]hooks] [--defuse-gitattributes=[auto|on|off]] [--repo-user=[GIT|DEBIAN]] [--repo-email=[GIT|DEBIAN]] [--[no-]aliases]
                 [--[no-]add-upstream-vcs] repository [directory]

See Also