]> git.ipfire.org Git - thirdparty/git.git/blob - Documentation/config/branch.txt
Merge branch 'js/ci-use-macos-13'
[thirdparty/git.git] / Documentation / config / branch.txt
1 branch.autoSetupMerge::
2 Tells 'git branch', 'git switch' and 'git checkout' to set up new branches
3 so that linkgit:git-pull[1] will appropriately merge from the
4 starting point branch. Note that even if this option is not set,
5 this behavior can be chosen per-branch using the `--track`
6 and `--no-track` options. The valid settings are: `false` -- no
7 automatic setup is done; `true` -- automatic setup is done when the
8 starting point is a remote-tracking branch; `always` --
9 automatic setup is done when the starting point is either a
10 local branch or remote-tracking branch; `inherit` -- if the starting point
11 has a tracking configuration, it is copied to the new
12 branch; `simple` -- automatic setup is done only when the starting point
13 is a remote-tracking branch and the new branch has the same name as the
14 remote branch. This option defaults to true.
15
16 branch.autoSetupRebase::
17 When a new branch is created with 'git branch', 'git switch' or 'git checkout'
18 that tracks another branch, this variable tells Git to set
19 up pull to rebase instead of merge (see "branch.<name>.rebase").
20 When `never`, rebase is never automatically set to true.
21 When `local`, rebase is set to true for tracked branches of
22 other local branches.
23 When `remote`, rebase is set to true for tracked branches of
24 remote-tracking branches.
25 When `always`, rebase will be set to true for all tracking
26 branches.
27 See "branch.autoSetupMerge" for details on how to set up a
28 branch to track another branch.
29 This option defaults to never.
30
31 branch.sort::
32 This variable controls the sort ordering of branches when displayed by
33 linkgit:git-branch[1]. Without the "--sort=<value>" option provided, the
34 value of this variable will be used as the default.
35 See linkgit:git-for-each-ref[1] field names for valid values.
36
37 branch.<name>.remote::
38 When on branch <name>, it tells 'git fetch' and 'git push'
39 which remote to fetch from or push to. The remote to push to
40 may be overridden with `remote.pushDefault` (for all branches).
41 The remote to push to, for the current branch, may be further
42 overridden by `branch.<name>.pushRemote`. If no remote is
43 configured, or if you are not on any branch and there is more than
44 one remote defined in the repository, it defaults to `origin` for
45 fetching and `remote.pushDefault` for pushing.
46 Additionally, `.` (a period) is the current local repository
47 (a dot-repository), see `branch.<name>.merge`'s final note below.
48
49 branch.<name>.pushRemote::
50 When on branch <name>, it overrides `branch.<name>.remote` for
51 pushing. It also overrides `remote.pushDefault` for pushing
52 from branch <name>. When you pull from one place (e.g. your
53 upstream) and push to another place (e.g. your own publishing
54 repository), you would want to set `remote.pushDefault` to
55 specify the remote to push to for all branches, and use this
56 option to override it for a specific branch.
57
58 branch.<name>.merge::
59 Defines, together with branch.<name>.remote, the upstream branch
60 for the given branch. It tells 'git fetch'/'git pull'/'git rebase' which
61 branch to merge and can also affect 'git push' (see push.default).
62 When in branch <name>, it tells 'git fetch' the default
63 refspec to be marked for merging in FETCH_HEAD. The value is
64 handled like the remote part of a refspec, and must match a
65 ref which is fetched from the remote given by
66 "branch.<name>.remote".
67 The merge information is used by 'git pull' (which first calls
68 'git fetch') to lookup the default branch for merging. Without
69 this option, 'git pull' defaults to merge the first refspec fetched.
70 Specify multiple values to get an octopus merge.
71 If you wish to setup 'git pull' so that it merges into <name> from
72 another branch in the local repository, you can point
73 branch.<name>.merge to the desired branch, and use the relative path
74 setting `.` (a period) for branch.<name>.remote.
75
76 branch.<name>.mergeOptions::
77 Sets default options for merging into branch <name>. The syntax and
78 supported options are the same as those of linkgit:git-merge[1], but
79 option values containing whitespace characters are currently not
80 supported.
81
82 branch.<name>.rebase::
83 When true, rebase the branch <name> on top of the fetched branch,
84 instead of merging the default branch from the default remote when
85 "git pull" is run. See "pull.rebase" for doing this in a non
86 branch-specific manner.
87 +
88 When `merges` (or just 'm'), pass the `--rebase-merges` option to 'git rebase'
89 so that the local merge commits are included in the rebase (see
90 linkgit:git-rebase[1] for details).
91 +
92 When the value is `interactive` (or just 'i'), the rebase is run in interactive
93 mode.
94 +
95 *NOTE*: this is a possibly dangerous operation; do *not* use
96 it unless you understand the implications (see linkgit:git-rebase[1]
97 for details).
98
99 branch.<name>.description::
100 Branch description, can be edited with
101 `git branch --edit-description`. Branch description is
102 automatically added to the format-patch cover letter or
103 request-pull summary.