@@ -1826,39 +1826,55 @@ pull.twohead::
1826
1826
The default merge strategy to use when pulling a single branch.
1827
1827
1828
1828
push.default::
1829
- Defines the action `git push` should take if no refspec is given
1830
- on the command line, no refspec is configured in the remote, and
1831
- no refspec is implied by any of the options given on the command
1832
- line. Possible values are:
1829
+ Defines the action `git push` should take if no refspec is
1830
+ explicitly given. Different values are well-suited for
1831
+ specific workflows; for instance, in a purely central workflow
1832
+ (i.e. the fetch source is equal to the push destination),
1833
+ `upstream` is probably what you want. Possible values are:
1833
1834
+
1834
1835
--
1835
- * `nothing` - do not push anything.
1836
- * `matching ` - push all branches having the same name in both ends.
1837
- This is for those who prepare all the branches into a publishable
1838
- shape and then push them out with a single command. It is not
1839
- appropriate for pushing into a repository shared by multiple users,
1840
- since locally stalled branches will attempt a non-fast forward push
1841
- if other users updated the branch.
1842
- +
1843
- This is currently the default, but Git 2.0 will change the default
1844
- to `simple`.
1845
- * `upstream` - push the current branch to its upstream branch
1846
- (`tracking` is a deprecated synonym for this).
1847
- With this, `git push` will update the same remote ref as the one which
1848
- is merged by `git pull`, making `push` and `pull` symmetrical .
1849
- See "branch.<name>.merge" for how to configure the upstream branch.
1836
+
1837
+ * `nothing ` - do not push anything (error out) unless a refspec is
1838
+ explicitly given. This is primarily meant for people who want to
1839
+ avoid mistakes by always being explicit.
1840
+
1841
+ * `current` - push the current branch to update a branch with the same
1842
+ name on the receiving end. Works in both central and non-central
1843
+ workflows.
1844
+
1845
+ * `upstream` - push the current branch back to the branch whose
1846
+ changes are usually integrated into the current branch (which is
1847
+ called `@{upstream}`). This mode only makes sense if you are
1848
+ pushing to the same repository you would normally pull from
1849
+ (i.e. central workflow) .
1850
+
1850
1851
* `simple` - like `upstream`, but refuses to push if the upstream
1851
1852
branch's name is different from the local one. This is the safest
1852
- option and is well-suited for beginners. It will become the default
1853
- in Git 2.0.
1854
- * `current` - push the current branch to a branch of the same name.
1855
- --
1853
+ option and is well-suited for beginners.
1856
1854
+
1857
- The `simple`, `current` and `upstream` modes are for those who want to
1858
- push out a single branch after finishing work, even when the other
1859
- branches are not yet ready to be pushed out. If you are working with
1860
- other people to push into the same shared repository, you would want
1861
- to use one of these.
1855
+ This mode will become the default in Git 2.0.
1856
+
1857
+ * `matching` - push all branches having the same name on both ends.
1858
+ This makes the repository you are pushing to remember the set of
1859
+ branches that will be pushed out (e.g. if you always push 'maint'
1860
+ and 'master' there and no other branches, the repository you push
1861
+ to will have these two branches, and your local 'maint' and
1862
+ 'master' will be pushed there).
1863
+ +
1864
+ To use this mode effectively, you have to make sure _all_ the
1865
+ branches you would push out are ready to be pushed out before
1866
+ running 'git push', as the whole point of this mode is to allow you
1867
+ to push all of the branches in one go. If you usually finish work
1868
+ on only one branch and push out the result, while other branches are
1869
+ unfinished, this mode is not for you. Also this mode is not
1870
+ suitable for pushing into a shared central repository, as other
1871
+ people may add new branches there, or update the tip of existing
1872
+ branches outside your control.
1873
+ +
1874
+ This is currently the default, but Git 2.0 will change the default
1875
+ to `simple`.
1876
+
1877
+ --
1862
1878
1863
1879
rebase.stat::
1864
1880
Whether to show a diffstat of what changed upstream since the last
0 commit comments