X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=pep-git.txt;h=25f6cfbcbc92cb8829f6bda87ab95b4c5c3d9835;hb=751300f8316a2526759879467acb06dab5b27ff9;hp=08880df1ab19290f79993c33774f683c7980266a;hpb=cd5d694aab5e95354ed529716dff4db7bf13e9cb;p=git-wiki.git diff --git a/pep-git.txt b/pep-git.txt index 08880df..25f6cfb 100644 --- a/pep-git.txt +++ b/pep-git.txt @@ -751,19 +751,70 @@ 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. + +bash/zsh prompt +--------------- + +For shell command-line lovers prompt can carry a lot of useful +information. To include git information in the prompt use +`git-prompt.sh +`_. +Read the detailed instructions in the file. + +Search the Net for "git prompt" to find other prompt variants. git on server ============= -TODO: anonymous access (``git daemon``); git over ssh; gitolite; -gitweb; cgit; Kallithea; pagure; gogs and gitea; gitlab. - -http://gitolite.com/gitolite/index.html +The simplest way to publish a repository or a group of repositories is +``git daemon``. The daemon provides anonymous access, by default it is +read-only. The repositories are accessible by git protocol (git:// +URLs). Write access can be enabled but the protocol lacks any +authentication means, so it should be enabled only within a trusted +LAN. See ``git help daemon`` for details. + +Git over ssh provides authentication and repo-level authorisation as +repositories can be made user- or group-writeable (see parameter +``core.sharedRepository`` in ``git help config``). If that's too +permissive or too restrictive for some project's needs there is a +wrapper `gitolite `_ that can +be configured to allow access with great granularity; gitolite has a +lot of documentation. + +TODO: gitweb; cgit; Kallithea; pagure; gogs and gitea; gitlab. https://git.kernel.org/cgit/git/git.git/tree/gitweb