LinuxCommandLibrary

git-send-pack

Transmit objects to another repository

SYNOPSIS

git send-pack [--all] [--thin] [--atomic] [--receive-pack=] [--advertise-refs] ...

PARAMETERS

--all
    Pretend as if all refs under are specified on the command line.

--thin
    Generate a thin pack, which records objects in deltified form based on objects not included in the pack to reduce network traffic.

--atomic
    Request atomic transaction on the remote side. The remote either updates all refs or none.

--receive-pack=
    Path to git-receive-pack on the remote side. Defaults to git-receive-pack.

--advertise-refs
    After creating the packfile, send the refs available at the repository with their current object names. Can be used to get a remote repository's refs.


    The repository to read objects from.

...
    List of refs to send to the other side.

DESCRIPTION

The git-send-pack command is typically used by git fetch-pack on the remote end to receive objects from another repository. It takes a list of object names or revisions to send from the sending end, packs them into a pack file, and sends it to the receiving end via standard output.

Essentially, it is a helper command invoked by git fetch-pack and similar commands during a 'git fetch' or 'git push' operation to transfer the necessary objects. It isn't usually directly invoked by the end-user, but rather runs as part of the internal plumbing of Git's object transfer mechanism.

git-send-pack builds a packfile containing the objects requested by the receiver and transmits the packfile. It also sends ref updates to the receiving end, if any ref updates were requested.

CAVEATS

This is a plumbing command and is not intended for end-users. It is used by git fetch-pack and git push.

SECURITY CONSIDERATIONS

Since this command may invoke shell commands on the remote end via ssh, pay careful attention to the setting of receive.advertisePushOptions and receive.fsck.* configuration variables. An appropriate setting for the security conscious would be:
git config --system receive.advertisePushOptions false
git config --system receive.fsck.error die

SEE ALSO

Copied to clipboard