set of references to fetch is calculated using matching algorithm: git
fetches all branches having the same name on both ends.
+
Push
''''
for caveats; in 2.4 the push-to-deploy feature was `further improved
<https://github.com/blog/1994-git-2-4-atomic-pushes-push-to-deploy-and-more#push-to-deploy-improvements>`_.
+
Tags
''''
$ git grep -Ovim # but not -O vim
-BTW, there is a difference between running ``git grep -O`` and ``git
-grep -Oless`` - in the latter case ``git grep`` passes ``+/pattern``
-option to ``less``.
+BTW, if git is instructed to use ``less`` as the pager (i.e., if pager
+is not configured in git at all it uses ``less`` by default, or if it
+gets ``less`` from GIT_PAGER or PAGER environment variables, or if it
+was configured with ``git config --global core.pager less``, or
+``less`` is used in the command ``git grep -Oless``) ``git grep``
+passes ``+/$pattern`` option to ``less`` which is quite convenient.
+Unfortunately, ``git grep`` doesn't pass the pattern if the pager is
+not exactly ``less``, even if it's ``less`` with parameters (something
+like ``git config --global core.pager less -FRSXgimq``); fortunately,
+``git grep -Oless`` always passes the pattern.
bash/zsh completion
``core.sharedRepository`` in ``git help config``). If that's too
permissive or too restrictive for some project's needs there is a
wrapper `gitolite <http://gitolite.com/gitolite/index.html>`_ that can
-be configured to allow access with great granularity; gitolite has a
-lot of documentation.
+be configured to allow access with great granularity; gitolite is
+written in Perl and has a lot of documentation.
Web interface to browse repositories can be created using `gitweb
-<https://git.kernel.org/cgit/git/git.git/tree/gitweb>`_ and `cgit
+<https://git.kernel.org/cgit/git/git.git/tree/gitweb>`_ or `cgit
<http://git.zx2c4.com/cgit/about/>`_. Both are CGI scripts (written in
Perl and C). In addition to web interface both provide read-only dumb
http access for git (http(s):// URLs).
There are also more advanced web-based development environments that
-include ability to manage users, groups and projects; private, group
-and public repositories; they often include issue trackers, wiki
-pages, pull requests and other tools for development and
-communication. Among these environments are `Kallithea
+include ability to manage users, groups and projects; private,
+group-accessible and public repositories; they often include issue
+trackers, wiki pages, pull requests and other tools for development
+and communication. Among these environments are `Kallithea
<https://kallithea-scm.org/>`_ and `pagure <https://pagure.io/>`_,
both are written in Python; pagure was written by Fedora developers
and is being used to develop some Fedora projects. `Gogs
<http://gogs.io/>`_ is written in Go; there is a fork `Gitea
<http://gitea.io/>`_.
-And last but not least `Gitlab <https://about.gitlab.com/>`_. It's
+And last but not least, `Gitlab <https://about.gitlab.com/>`_. It's
perhaps the most advanced web-based development environment for git.
Written in Ruby, community edition is free and open source (MIT
license).
=====================
There are many tools to convert Mercurial repositories to git. The
-most famous are, perhaps, `hg-git <https://hg-git.github.io/>`_ and
+most famous are, probably, `hg-git <https://hg-git.github.io/>`_ and
`fast-export <http://repo.or.cz/w/fast-export.git>`_ (many years ago
it was known under the name ``hg2git``).
But a better tool, perhaps the best, is `git-remote-hg
<https://github.com/felipec/git-remote-hg>`_. It provides transparent
bidirectional access (pull and push) to Mercurial repositories from
-git. The author wrote a `comparison of alternatives
+git. Its author wrote a `comparison of alternatives
<https://github.com/felipec/git/wiki/Comparison-of-git-remote-hg-alternatives>`_
that seems to be mostly unbiased.