table of contents
GIT-UPLOAD-PACK(1) | Git Manual | GIT-UPLOAD-PACK(1) |
NAME¶
git-upload-pack - Send objects packed back to git-fetch-pack
SYNOPSIS¶
git-upload-pack [--[no-]strict] [--timeout=<n>] [--stateless-rpc]
[--advertise-refs] <directory>
DESCRIPTION¶
Invoked by git fetch-pack, learns what objects the other side is missing, and sends them after packing.
This command is usually not invoked directly by the end user. The UI for the protocol is on the git fetch-pack side, and the program pair is meant to be used to pull updates from a remote repository. For push operations, see git send-pack.
OPTIONS¶
--[no-]strict
--timeout=<n>
--stateless-rpc
--http-backend-info-refs
<directory>
ENVIRONMENT¶
GIT_PROTOCOL
GIT_NO_LAZY_FETCH
This is implemented by having upload-pack internally set the GIT_NO_LAZY_FETCH variable to 1. If you want to override it (because you are fetching from a partial clone, and you are sure you trust it), you can explicitly set GIT_NO_LAZY_FETCH to 0.
SECURITY¶
Most Git commands should not be run in an untrusted .git directory (see the section SECURITY in git(1)). upload-pack tries to avoid any dangerous configuration options or hooks from the repository it’s serving, making it safe to clone an untrusted directory and run commands on the resulting clone.
For an extra level of safety, you may be able to run upload-pack as an alternate user. The details will be platform dependent, but on many systems you can run:
git clone --no-local --upload-pack='sudo -u nobody git-upload-pack' ...
SEE ALSO¶
GIT¶
Part of the git(1) suite
10/09/2024 | Git 2.47.0 |