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