mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-12-16 07:51:52 +08:00
git语法高亮
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<div class="c-markdown doc-markdown"><div class="doc-postil"><div class="c-markdown"><h2>名称</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>git-http-backend - Git 在HTTP的服务器端实现</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>概要</h2></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">git http-backend</pre></div></div><div class="doc-postil"><div class="c-markdown"><h2>描述</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>一个简单的 CGI 程序,用于向通过 http://和https://协议访问存储库的 Git 客户端提供 Git 存储库的内容。该程序支持客户端使用智能 HTTP 协议和向后兼容的愚蠢 HTTP 协议以及客户端使用智能 HTTP 协议进行推送。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>它会验证该目录是否具有魔术文件“git-daemon-export-ok”,并且它会拒绝导出任何未明确标记为导出的 Git 目录(除非<code>GIT_HTTP_EXPORT_ALL</code>设置了环境变量)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>默认情况下,只有<code>upload-pack</code>服务已启用,供应<code>git fetch-pack</code>和<code>git ls-remote</code>客户,这是从调用<code>git fetch</code>,<code>git pull</code>和<code>git clone</code>。如果客户端已通过身份验证,<code>receive-pack</code>则会启用该服务,该服务将为<code>git send-pack</code>客户端提供服务,并从中调用该服务<code>git push</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>服务</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>可以使用每个存储库配置文件启用/禁用这些服务:</p></div></div><div class="doc-postil"><div class="c-markdown"><p>http.getanyfile</p></div></div><div class="doc-postil"><div class="c-markdown"><p>这为不能使用上传包服务的版本低于1.6.6的 Git 客户端提供服务。启用时,客户端可以读取存储库中的任何文件,包括不再从分支中访问但仍存在的对象。它是默认启用的,但是一个存储库可以通过设置这个配置项来禁用它<code>false</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>http.uploadpack</p></div></div><div class="doc-postil"><div class="c-markdown"><p>这服务<code>git fetch-pack</code>和<code>git ls-remote</code>客户。它是默认启用的,但是一个存储库可以通过设置这个配置项来禁用它<code>false</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>http.receivepack</p></div></div><div class="doc-postil"><div class="c-markdown"><p>这为<code>git send-pack</code>客户提供服务,从而推动。默认情况下,它对于匿名用户是禁用的,并且默认情况下为 Web 服务器验证的用户启用。可以通过将该项目设置为<code>false</code>或禁用所有用户(包括匿名用户),将其设置为<code>true</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>网址翻译</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>要确定存储库在磁盘上的位置,需要<code>git http-backend</code>连接由 Web 服务器自动设置的环境变量 PATH_INFO 和必须在 Web 服务器配置中手动设置的 GIT_PROJECT_ROOT。如果未设置 GIT_PROJECT_ROOT,则<code>git http-backend</code>读取 PATH_TRANSLATED,它也由 Web 服务器自动设置。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>示例</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>以下所有示例都映射<code>http://$hostname/git/foo/bar.git</code>到<code>/var/www/git/foo/bar.git</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>Apache 2.x</p></div></div><div class="doc-postil"><div class="c-markdown"><p>确保已启用mod_cgi,mod_alias 和 mod_env,并正确设置 GIT_PROJECT_ROOT(或DocumentRoot),并为 CGI 创建一个 ScriptAlias:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">SetEnv GIT_PROJECT_ROOT /var/www/git
|
||||
<div class="c-markdown doc-markdown"><div class="doc-postil"><div class="c-markdown"><h2>名称</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>git-http-backend - Git 在HTTP的服务器端实现</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>概要</h2></div></div><div class="doc-postil"><div class="c-markdown"><pre><code class="language-Bash">git http-backend</code></pre></div></div><div class="doc-postil"><div class="c-markdown"><h2>描述</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>一个简单的 CGI 程序,用于向通过 http://和https://协议访问存储库的 Git 客户端提供 Git 存储库的内容。该程序支持客户端使用智能 HTTP 协议和向后兼容的愚蠢 HTTP 协议以及客户端使用智能 HTTP 协议进行推送。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>它会验证该目录是否具有魔术文件“git-daemon-export-ok”,并且它会拒绝导出任何未明确标记为导出的 Git 目录(除非<code>GIT_HTTP_EXPORT_ALL</code>设置了环境变量)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>默认情况下,只有<code>upload-pack</code>服务已启用,供应<code>git fetch-pack</code>和<code>git ls-remote</code>客户,这是从调用<code>git fetch</code>,<code>git pull</code>和<code>git clone</code>。如果客户端已通过身份验证,<code>receive-pack</code>则会启用该服务,该服务将为<code>git send-pack</code>客户端提供服务,并从中调用该服务<code>git push</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>服务</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>可以使用每个存储库配置文件启用/禁用这些服务:</p></div></div><div class="doc-postil"><div class="c-markdown"><p>http.getanyfile</p></div></div><div class="doc-postil"><div class="c-markdown"><p>这为不能使用上传包服务的版本低于1.6.6的 Git 客户端提供服务。启用时,客户端可以读取存储库中的任何文件,包括不再从分支中访问但仍存在的对象。它是默认启用的,但是一个存储库可以通过设置这个配置项来禁用它<code>false</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>http.uploadpack</p></div></div><div class="doc-postil"><div class="c-markdown"><p>这服务<code>git fetch-pack</code>和<code>git ls-remote</code>客户。它是默认启用的,但是一个存储库可以通过设置这个配置项来禁用它<code>false</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>http.receivepack</p></div></div><div class="doc-postil"><div class="c-markdown"><p>这为<code>git send-pack</code>客户提供服务,从而推动。默认情况下,它对于匿名用户是禁用的,并且默认情况下为 Web 服务器验证的用户启用。可以通过将该项目设置为<code>false</code>或禁用所有用户(包括匿名用户),将其设置为<code>true</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>网址翻译</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>要确定存储库在磁盘上的位置,需要<code>git http-backend</code>连接由 Web 服务器自动设置的环境变量 PATH_INFO 和必须在 Web 服务器配置中手动设置的 GIT_PROJECT_ROOT。如果未设置 GIT_PROJECT_ROOT,则<code>git http-backend</code>读取 PATH_TRANSLATED,它也由 Web 服务器自动设置。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>示例</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>以下所有示例都映射<code>http://$hostname/git/foo/bar.git</code>到<code>/var/www/git/foo/bar.git</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>Apache 2.x</p></div></div><div class="doc-postil"><div class="c-markdown"><p>确保已启用mod_cgi,mod_alias 和 mod_env,并正确设置 GIT_PROJECT_ROOT(或DocumentRoot),并为 CGI 创建一个 ScriptAlias:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre><code class="language-Bash">SetEnv GIT_PROJECT_ROOT /var/www/git
|
||||
|
||||
SetEnv GIT_HTTP_EXPORT_ALL
|
||||
SetEnv GIT_HTTP_EXPORT_ALL
|
||||
|
||||
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/</code></pre></div></div><div class="doc-postil"><div class="c-markdown"><p>要启用匿名读取访问但授权写入访问,需要授权初始引用广告(我们通过查询字符串中的服务参数检测为推送)以及接收包调用本身:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre><code class="language-Bash">RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]RewriteCond %{REQUEST_URI} /git-receive-pack$
|
||||
|
||||
@@ -8,27 +8,27 @@ RewriteRule ^/git/ - [E=AUTHREQUIRED:yes]<LocationMatch "^/git/">
|
||||
|
||||
Order Deny,Allow
|
||||
|
||||
Deny from env=AUTHREQUIRED
|
||||
Deny from env=AUTHREQUIRED
|
||||
|
||||
|
||||
|
||||
|
||||
AuthType Basic
|
||||
|
||||
AuthName "Git Access"
|
||||
AuthName "Git Access"
|
||||
|
||||
Require group committers
|
||||
|
||||
Satisfy Any ...</LocationMatch></code></pre></div></div><div class="doc-postil"><div class="c-markdown"><p>如果您没有<code>mod_rewrite</code>可用于匹配查询字符串,则仅保护<code>git-receive-pack</code>自己就足够了,如:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre><code class="language-Bash"><LocationMatch "^/git/.*/git-receive-pack$">
|
||||
|
||||
|
||||
AuthType Basic
|
||||
|
||||
|
||||
AuthName "Git Access"
|
||||
|
||||
Require group committers ...</LocationMatch></code></pre></div></div><div class="doc-postil"><div class="c-markdown"><p>在这种模式下,服务器将不会请求认证,直到客户端实际启动推送的对象协商阶段,而不是在初始联系期间。出于这个原因,您还必须<code>http.receivepack</code>在任何应该接受推送的存储库中启用配置选项。默认行为如果<code>http.receivepack</code>未设置,则拒绝未经身份验证的用户进行的任何推送; 因此最初的请求会<code>403 Forbidden</code>向客户报告,甚至没有提供认证的机会。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>要对读取和写入进行身份验证,请在存储库或其父目录之一使用 Location 指令:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre><code class="language-Bash"><Location /git/private>
|
||||
|
||||
AuthType Basic
|
||||
AuthType Basic
|
||||
|
||||
AuthName "Private Git Access"
|
||||
AuthName "Private Git Access"
|
||||
|
||||
Require group committers ...</Location></pre></div></div><div class="doc-postil"><div class="c-markdown"><p>要在相同的 url 上提供 gitweb,请使用 ScriptAliasMatch 仅<code>git http-backend</code>处理那些可以处理的 URL ,然后将其余的转发到 gitweb:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">ScriptAliasMatch \ "(?x)^/git/(.*/(HEAD | \
|
||||
|
||||
Require group committers ...</Location></code></pre></div></div><div class="doc-postil"><div class="c-markdown"><p>要在相同的 url 上提供 gitweb,请使用 ScriptAliasMatch 仅<code>git http-backend</code>处理那些可以处理的 URL ,然后将其余的转发到 gitweb:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre><code class="language-Bash">ScriptAliasMatch \ "(?x)^/git/(.*/(HEAD | \
|
||||
|
||||
Reference in New Issue
Block a user