]>
Commit | Line | Data |
---|---|---|
8b3d9dc0 JH |
1 | git-upload-pack(1) |
2 | ================== | |
8b3d9dc0 JH |
3 | |
4 | NAME | |
5 | ---- | |
c3f0baac | 6 | git-upload-pack - Send objects packed back to git-fetch-pack |
8b3d9dc0 JH |
7 | |
8 | ||
9 | SYNOPSIS | |
10 | -------- | |
7791a1d9 | 11 | [verse] |
9812f213 AQ |
12 | 'git-upload-pack' [--[no-]strict] [--timeout=<n>] [--stateless-rpc] |
13 | [--advertise-refs] <directory> | |
ad471949 | 14 | |
8b3d9dc0 JH |
15 | DESCRIPTION |
16 | ----------- | |
0b444cdb | 17 | Invoked by 'git fetch-pack', learns what |
8b3d9dc0 JH |
18 | objects the other side is missing, and sends them after packing. |
19 | ||
20 | This command is usually not invoked directly by the end user. | |
0b444cdb | 21 | The UI for the protocol is on the 'git fetch-pack' side, and the |
8b3d9dc0 | 22 | program pair is meant to be used to pull updates from a remote |
0b444cdb | 23 | repository. For push operations, see 'git send-pack'. |
8b3d9dc0 | 24 | |
8b3d9dc0 JH |
25 | OPTIONS |
26 | ------- | |
83a5ad61 | 27 | |
9812f213 | 28 | --[no-]strict:: |
384f7d17 | 29 | Do not try <directory>/.git/ if <directory> is not a Git directory. |
83a5ad61 | 30 | |
3240240f | 31 | --timeout=<n>:: |
83a5ad61 JS |
32 | Interrupt transfer after <n> seconds of inactivity. |
33 | ||
9812f213 AQ |
34 | --stateless-rpc:: |
35 | Perform only a single read-write cycle with stdin and stdout. | |
36 | This fits with the HTTP POST request processing model where | |
37 | a program may read the request, write a response, and must exit. | |
38 | ||
98e2d9d6 ÆAB |
39 | --http-backend-info-refs:: |
40 | Used by linkgit:git-http-backend[1] to serve up | |
41 | `$GIT_URL/info/refs?service=git-upload-pack` requests. See | |
1e232016 | 42 | "Smart Clients" in linkgit:gitprotocol-http[5] and "HTTP |
c9dba103 | 43 | Transport" in the linkgit:gitprotocol-v2[5] |
1e232016 | 44 | documentation. Also understood by |
98e2d9d6 | 45 | linkgit:git-receive-pack[1]. |
9812f213 | 46 | |
8b3d9dc0 JH |
47 | <directory>:: |
48 | The repository to sync from. | |
49 | ||
2834a72d JK |
50 | ENVIRONMENT |
51 | ----------- | |
52 | ||
53 | `GIT_PROTOCOL`:: | |
54 | Internal variable used for handshaking the wire protocol. Server | |
55 | admins may need to configure some transports to allow this | |
56 | variable to be passed. See the discussion in linkgit:git[1]. | |
57 | ||
7b70e9ef JK |
58 | `GIT_NO_LAZY_FETCH`:: |
59 | When cloning or fetching from a partial repository (i.e., one | |
60 | itself cloned with `--filter`), the server-side `upload-pack` | |
61 | may need to fetch extra objects from its upstream in order to | |
62 | complete the request. By default, `upload-pack` will refuse to | |
63 | perform such a lazy fetch, because `git fetch` may run arbitrary | |
64 | commands specified in configuration and hooks of the source | |
65 | repository (and `upload-pack` tries to be safe to run even in | |
66 | untrusted `.git` directories). | |
67 | + | |
68 | This is implemented by having `upload-pack` internally set the | |
69 | `GIT_NO_LAZY_FETCH` variable to `1`. If you want to override it | |
70 | (because you are fetching from a partial clone, and you are sure | |
71 | you trust it), you can explicitly set `GIT_NO_LAZY_FETCH` to | |
72 | `0`. | |
73 | ||
e69ac42f JK |
74 | SECURITY |
75 | -------- | |
76 | ||
77 | Most Git commands should not be run in an untrusted `.git` directory | |
78 | (see the section `SECURITY` in linkgit:git[1]). `upload-pack` tries to | |
79 | avoid any dangerous configuration options or hooks from the repository | |
80 | it's serving, making it safe to clone an untrusted directory and run | |
81 | commands on the resulting clone. | |
82 | ||
83 | For an extra level of safety, you may be able to run `upload-pack` as an | |
84 | alternate user. The details will be platform dependent, but on many | |
85 | systems you can run: | |
86 | ||
87 | git clone --no-local --upload-pack='sudo -u nobody git-upload-pack' ... | |
88 | ||
d49483f0 JT |
89 | SEE ALSO |
90 | -------- | |
91 | linkgit:gitnamespaces[7] | |
92 | ||
8b3d9dc0 JH |
93 | GIT |
94 | --- | |
9e1f0a85 | 95 | Part of the linkgit:git[1] suite |