]> git.phdru.name Git - git-wiki.git/blobdiff - pep-git.txt
Explain sticky options (git grep -O)
[git-wiki.git] / pep-git.txt
index 08880df1ab19290f79993c33774f683c7980266a..5a4ec8000d94ef03b5430ee43e47d44ad6d7597b 100644 (file)
@@ -751,7 +751,20 @@ works: ``git commit -av`` works perfectly, but there are situations
 when it doesn't. E.g., ``git log -p -5`` cannot be combined as ``git
 log -p5``.
 
-TODO: sticky options; example: git grep -O.
+Some options have arguments, some even have default arguments. In that
+case the argument for such option must be spelled in sticky way:
+``-Oarg``, never ``-O arg`` because for an option that has a default
+argument the latter means "use default value for option ``-O`` and
+pass ``arg`` further to the option parser". For example, ``git grep``
+has an option ``-O`` that passes found files to a program; default
+program for ``-O`` is pager (ususally ``less``), but you can use your
+editor::
+
+    $ 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.
 
 TODO: bash/zsh completion, bash/zsh prompt.
 https://git.kernel.org/cgit/git/git.git/tree/contrib/completion