提交 dd21dd45 编写于 作者: H honglyua

update git clone zh doc

上级 276d17e3
......@@ -20,13 +20,13 @@ git clone [--template=<template_directory>]
## 描述
将存储库克隆到新创建的目录中,为克隆存储库中的每个分支创建远程跟踪分支(使用`git branch -r`可见),并创建并检出从克隆存储库的当前活动分支分叉的初始分支。
将存储库克隆到新创建的目录中,为克隆存储库中的每个分支创建远程跟踪分支(使用`git branch -r`可见),并创建并检出从克隆存储库的当前活动分支的初始分支。
在克隆之后,没有参数的普通`git fetch`将更新所有远程跟踪分支,并且没有参数的`git pull`将另外将远程主分支合并到当前主分支中(如果有的话)(这在“ - ”时是不真实的 - -single-branch“给出;见下文)。
在克隆之后,没有参数的普通`git fetch`将更新所有远程跟踪分支,并且没有参数的`git pull`将另外将远程主分支合并到当前主分支中(如果有"--single-branch“的话,见下文)。
通过在`refs/remotes/origin`下创建对远程分支头的引用并初始化`remote.origin.url``remote.origin.fetch`配置变量来实现此默认配置。
## OPTIONS
## 选项
```
--local
......@@ -36,7 +36,7 @@ git clone [--template=<template_directory>]
-l
```
当要克隆的存储库位于本地计算机上时,此标志会绕过正常的“Git感知”传输机制,并通过制作HEAD副本以及对象和refs目录下的所有内容来克隆存储库。 `.git/objects/`目录下的文件是硬链接的,以便在可能的情况下节省空间。
当要克隆的存储库位于本地计算机上时,此标志会绕过正常的“Git感知”传输机制,并通过制作HEAD以及对象和refs目录下的所有内容的副本来克隆存储库。 `.git/objects/`目录下的文件是硬链接的,以便在可能的情况下节省空间。
如果将存储库指定为本地路径(例如,`/path/to/repo`),则这是默认值,而--local本质上是无操作。如果将存储库指定为URL,则忽略此标志(并且我们从不使用本地优化)。当给出`/path/to/repo`时,指定`--no-local`将覆盖默认值,而是使用常规Git传输。
......@@ -56,7 +56,7 @@ git clone [--template=<template_directory>]
当要克隆的存储库位于本地计算机上而不是使用硬链接时,会自动设置`.git/objects/info/alternates`以与源存储库共享对象。生成的存储库在没有任何自己的对象的情况下开始。
**注**:这可能是危险的操作;**而不是**使用它,除非你明白它的作用。如果使用此选项克隆存储库,然后在源存储库中删除分支(或使用任何其他任何现有提交未引用的Git命令),则某些对象可能会变为未引用(或悬空)。这些对象可以通过自动调用`git gc --auto`的普通Git操作(例如`git commit`)删除。 (参见 [git-gc [1]](https://git-scm.com/docs/git-gc) 。)如果这些对象被删除并被克隆的存储库引用,那么克隆的存储库将会损坏。
**注**:这可能是危险的操作;**不要**使用它,除非你明白它的作用。如果使用此选项克隆存储库,然后在源存储库中删除分支(或使用任何其他提交未引用的Git命令),则某些对象可能会变为未引用(或悬空)。这些对象可以通过自动调用`git gc --auto`的普通Git操作(例如`git commit`)删除。 (参见 [git-gc [1]](https://git-scm.com/docs/git-gc) 。)如果这些对象被删除并被克隆的存储库引用,那么克隆的存储库将会损坏。
请注意,在使用`-s`克隆的存储库中运行没有`-l`选项的`git repack`会将源存储库中的对象复制到克隆存储库中的包中,从而节省`clone -s`的磁盘空间节省。但是,运行`git gc`是安全的,它默认使用`-l`选项。
......@@ -66,7 +66,7 @@ git clone [--template=<template_directory>]
--reference[-if-able] <repository>
```
如果引用存储库位于本地计算机上,则自动设置`.git/objects/info/alternates`以从引用存储库获取对象。使用现有存储库作为备用存储库将需要从克隆的存储库中复制更少的对象,从而降低网络和本地存储成本。使用`--reference-if-able`时,将跳过不存在的目录,并显示警告而不是中止克隆。
如果引用存储库位于本地计算机上,则自动设置`.git/objects/info/alternates`以从引用存储库获取对象。使用现有存储库作为备用存储库将需要从克隆的存储库中复制更少的对象,从而降低网络和本地存储成本。使用`--reference-if-able`时,将跳过不存在的目录,并显示警告而不是中止克隆。
**注**:参见`--shared`选项的注释,以及`--dissociate`选项。
......@@ -74,7 +74,7 @@ git clone [--template=<template_directory>]
--dissociate
```
借用`--reference`选项指定的引用存储库中的对象,仅减少网络传输,并在通过制作必要的借用对象本地副本进行克隆后停止从它们借用。当已经从另一个存储库借用对象的存储库本地克隆时,也可以使用此选项 - 新存储库将从同一存储库中借用对象,并且此选项可用于停止借用。
借用`--reference`选项指定的引用存储库中的对象,仅减少网络传输,并在通过制作必要的借用对象本地副本进行克隆后停止从它们借用。当已经从另一个存储库借用对象的存储库本地克隆时,也可以使用此选项 - 新存储库将从同一存储库中借用对象,并且此选项可用于停止借用。
```
--quiet
......@@ -116,13 +116,13 @@ git clone [--template=<template_directory>]
--bare
```
制作一个_裸_ Git存储库。也就是说,不是创建`&lt;directory&gt;`并将管理文件放在`&lt;directory&gt;/.git`中,而是将`&lt;directory&gt;`本身设为`$GIT_DIR`。这显然意味着`-n`,因为无处可查看工作树。此外,遥控器上的分支头直接复制到相应的本地分支头,而不将它们映射到`refs/remotes/origin/`。使用此选项时,既不会创建远程跟踪分支,也不会创建相关的配置变量。
制作一个 _bare_ Git存储库。也就是说,不是创建`<directory>`并将管理文件放在`<directory>/.git`中,而是将`<directory>`本身设为`$GIT_DIR`。这显然意味着`-n`,因为无处可查看工作树。此外,远端上的分支头直接复制到相应的本地分支头,而不将它们映射到`refs/remotes/origin/`。使用此选项时,既不会创建远程跟踪分支,也不会创建相关的配置变量。
```
--mirror
```
设置源存储库的镜像。这意味着`--bare`。与`--bare`相比,`--mirror`不仅将源的本地分支映射到目标的本地分支,它还映射所有引用(包括远程跟踪分支,注释等)并设置refspec配置,以便所有这些引用被目标存储库中的`git remote update`覆盖。
设置源存储库的镜像。这类似`--bare`。与`--bare`相比,`--mirror`不仅将源的本地分支映射到目标的本地分支,它还映射所有引用(包括远程跟踪分支,注释等)并设置refspec配置,以便所有这些引用被目标存储库中的`git remote update`覆盖。
```
--origin <name>
......@@ -132,7 +132,7 @@ git clone [--template=<template_directory>]
-o <name>
```
不使用远程名称`origin`来跟踪上游存储库,而是使用`&lt;name&gt;`
不使用远程名称`origin`来跟踪上游存储库,而是使用`<name>`
```
--branch <name>
......@@ -142,7 +142,7 @@ git clone [--template=<template_directory>]
-b <name>
```
而不是将新创建的HEAD指向克隆存储库的HEAD所指向的分支,而是指向`&lt;name&gt;`分支。在非裸存储库中,这是将要检出的分支。 `--branch`还可以在生成的存储库中的标记处获取标记并分离HEAD。
而不是将新创建的HEAD指向克隆存储库的HEAD所指向的分支,而是指向`<name>`分支。在非裸存储库中,这是将要检出的分支。 `--branch`还可以在生成的存储库中的获取tags和分离HEAD。
```
--upload-pack <upload-pack>
......@@ -168,15 +168,15 @@ git clone [--template=<template_directory>]
-c <key>=<value>
```
在新创建的存储库中设置配置变量;这在初始化存储库之后,但在获取远程历史记录或检出任何文件之前立即生效。密钥的格式与 [git-config [1]](https://git-scm.com/docs/git-config) (例如`core.eol=true`)的格式相同。如果为同一个键指定了多个值,则每个值都将写入配置文件。例如,这样就可以安全地向源远程添加额外的fetch refspec。
在新创建的存储库中设置配置变量;这在初始化存储库之后,但在获取远程历史记录或检出任何文件之前立即生效。key的格式与 [git-config [1]](https://git-scm.com/docs/git-config) (例如`core.eol=true`)的格式相同。如果为同一个键指定了多个值,则每个值都将写入配置文件。例如,这样就可以安全地向源远程添加额外的fetch refspec。
由于当前实现的限制,一些配置变量在初始提取和检出之后才会生效。已知未生效的配置变量为:`remote.&lt;name&gt;.mirror``remote.&lt;name&gt;.tagOpt`。请改用相应的`--mirror``--no-tags`选项。
由于当前实现的限制,一些配置变量在初始提取和检出之后才会生效。已知未生效的配置变量为:`remote.<name>.mirror``remote.<name>.tagOpt`。请改用相应的`--mirror``--no-tags`选项。
```
--depth <depth>
```
创建一个_浅_克隆,其历史记录被截断为指定的提交次数。除非`--no-single-branch`用于获取所有分支的提示附近的历史,否则意味着`--single-branch`。如果要浅层克隆子模块,也要传递`--shallow-submodules`
创建一个 _浅_ 克隆,其历史记录被截断为指定的提交次数。除非`--no-single-branch`用于获取所有分支的提示附近的历史,否则意味着`--single-branch`。如果要浅层克隆子模块,也要传递`--shallow-submodules`
```
--shallow-since=<date>
......@@ -200,7 +200,7 @@ git clone [--template=<template_directory>]
--no-tags
```
不要克隆任何标签,并在配置中设置`remote.&lt;remote&gt;.tagOpt=--no-tags`,确保将来的`git pull``git fetch`操作不会跟随任何标签。后续显式标记提取仍然有效(参见 [git-fetch [1]](https://git-scm.com/docs/git-fetch) )。
不要克隆任何标签,并在配置中设置`remote.<remote>.tagOpt=--no-tags`,确保将来的`git pull``git fetch`操作不会跟随任何标签。后续显式标记提取仍然有效(参见 [git-fetch [1]](https://git-scm.com/docs/git-fetch) )。
可以与`--single-branch`一起使用来克隆和维护一个除了单个克隆分支之外没有引用的分支。这很有用,例如维护某些存储库的默认分支的最小克隆以进行搜索索引。
......@@ -208,9 +208,9 @@ git clone [--template=<template_directory>]
--recurse-submodules[=<pathspec]
```
创建克隆后,根据提供的pathspec初始化和克隆子模块。如果未提供pathspec,则初始化并克隆所有子模块。对于包含多个条目的pathspec,可以多次给出此选项。生成的克隆将`submodule.active`设置为提供的pathspec,或“” (如果没有提供pathspec,则表示所有子模块)。
创建克隆后,根据提供的pathspec初始化和克隆子模块。如果未提供pathspec,则初始化并克隆所有子模块。对于包含多个条目的pathspec,可以多次给出此选项。生成的克隆将`submodule.active`设置为提供的pathspec,或“.” (如果没有提供pathspec,则表示所有子模块)。
子模块使用其默认设置进行初始化和克隆。这相当于克隆完成后立即运行`git submodule update --init --recursive &lt;pathspec&gt;`。如果克隆的存储库没有工作树/结帐(即,如果给出`--no-checkout` / `-n``--bare``--mirror`中的任何一个),则忽略此选项
子模块使用其默认设置进行初始化和克隆。这相当于克隆完成后立即运行`git submodule update --init --recursive <pathspec>`。如果克隆的存储库没有工作树/检出(即,如果给出`--no-checkout` / `-n``--bare``--mirror`中的任何一个),则忽略此选项
```
--[no-]shallow-submodules
......@@ -266,7 +266,7 @@ Git支持ssh,git,http和https协议(此外,ftp和ftps可用于获取,
另一种类似scp的语法也可以与ssh协议一起使用:
* [用户@] host.xz:路径/到/ repo.git /
* [用户@] host.xz:path/to/ repo.git /
只有在第一个冒号之前没有斜杠时才会识别此语法。这有助于区分包含冒号的本地路径。例如,本地路径`foo:bar`可以指定为绝对路径或`./foo:bar`,以避免被误解为ssh url。
......@@ -286,11 +286,11 @@ ssh和git协议还支持〜用户名扩展:
这两种语法大多是等价的,除了前者暗示--local选项。
当Git不知道如何处理某种传输协议时,它会尝试使用 _remote-&lt; transport&gt;_ 远程助手,如果存在的话。要显式请求远程帮助程序,可以使用以下语法:
当Git不知道如何处理某种传输协议时,它会尝试使用 _remote-<transport>_ 远程助手,如果存在的话。要显式请求远程帮助程序,可以使用以下语法:
* &lt;运输&gt; ::&lt;地址&gt;
* <transport>::<address>
其中&lt;地址&gt;可以是路径,服务器和路径,或者由被调用的特定远程助手识别的任意类似URL的字符串。有关详细信息,请参阅 [gitremote-helpers [1]](https://git-scm.com/docs/gitremote-helpers)
其中<address>可以是路径,服务器,或者由被调用的特定远程助手识别的任意类似URL的字符串。有关详细信息,请参阅 [gitremote-helpers [1]](https://git-scm.com/docs/gitremote-helpers)
如果存在大量具有相似名称的远程存储库,并且您希望为它们使用不同的格式(以便将您使用的URL重写为有效的URL),则可以创建表单的配置部分:
......@@ -307,7 +307,7 @@ ssh和git协议还支持〜用户名扩展:
insteadOf = work:
```
像“work:repo.git”这样的URL或类似“host.xz:/path/to/repo.git”的URL将在任何带有URL的上下文中被重写为“git://git.host.xz/repo” git的”。
像“work:repo.git”这样的URL或类似“host.xz:/path/to/repo.git”的URL将在任何带有URL的上下文中被重写为“git://git.host.xz/repo.git”。
如果要为仅推送重写URL,可以创建表单的配置部分:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册