X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=pep-git.txt;h=5aa0583481fb4a3f9091d36e7ca757b040426183;hb=76a62f1684e83e3a902c5f4baddf87046de87e5f;hp=08880df1ab19290f79993c33774f683c7980266a;hpb=cd5d694aab5e95354ed529716dff4db7bf13e9cb;p=git-wiki.git diff --git a/pep-git.txt b/pep-git.txt index 08880df..5aa0583 100644 --- a/pep-git.txt +++ b/pep-git.txt @@ -751,10 +751,41 @@ 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 (usually ``less``), but you can use your +editor:: -TODO: bash/zsh completion, bash/zsh prompt. -https://git.kernel.org/cgit/git/git.git/tree/contrib/completion + $ 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. + +bash/zsh completion +------------------- + +It's a bit hard to type ``git rebase --interactive --preserve-merges +HEAD~5`` manually even for those who are happy to use command-line, +and this is where shell completion is of great help. Bash/zsh come +with programmable completion, often automatically preinstalled and +enabled, so if you have bash/zsh and git installed, chances are you +are already done - just go and use it at the command-line. + +If you don't have necessary bits preinstalled, install and enable +bash_completion package. If you want to upgrade your git completion to +the latest and greatest download necessary file from `git contrib +`_. + +Git-for-windows comes with git-bash, bash completion is installed and +enabled. + + +TODO: bash/zsh prompt. git on server