config: document remote.*.url/pushurl interaction
The documentation for these keys gives a very terse definition and points you to the fetch/push manpages. But from reading those pages it was not at all obvious to me that: - these are keys that can be defined multiple times with meaningful behavior (especially remote.*.url) - the way that pushurl overrides url (the git-push page does mention that "pushurl defaults to url", but it is not immediately clear what a multi-valued url would do in that situation). Let's try to summarize the current behavior. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Jun 14, 2024 at 06:30 UTC
bd1b88dc7aedb44561559e88cde0dd7bad78e2ae
1 file changed
+7
-1
Documentation/config/remote.txt
+7
-1
@@ -5,10 +5,16 @@ remote.pushDefault::
5
6
remote.<name>.url::
7
The URL of a remote repository. See linkgit:git-fetch[1] or
8
- linkgit:git-push[1].
8
+ linkgit:git-push[1]. A configured remote can have multiple URLs;
9
+ in this case the first is used for fetching, and all are used
10
+ for pushing (assuming no `remote.<name>.pushurl` is defined).
11
12
remote.<name>.pushurl::
13
The push URL of a remote repository. See linkgit:git-push[1].
14
+ If a `pushurl` option is present in a configured remote, it
15
+ is used for pushing instead of `remote.<name>.url`. A configured
16
+ remote can have multiple push URLs; in this case a push goes to
17
+ all of them.
18
19
remote.<name>.proxy::
20
For remotes that require curl (http, https and ftp), the URL to