git-clone参数解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: git-clone参数解析

git-clone - 将存储库克隆到新目录中


转自git官https://git-scm.com/docs/git-clone


概要

git clone [--template = <template_directory>]
    [-l] [-s] [ -  no-hardlinks] [-q] [-n] [--bare] [--mirror]
    [-o <name>] [-b <name>] [-u <upload-pack>] [ -  reference <repository>]
    [--dissociate] [--separate-git-dir <git dir>]
    [--depth <depth>] [ -  [no-] single-branch] [ -  no-tags]
    [--rerserse-submodules [= <pathspec>]] [ -  [no-] shallow-submodules]
    [--jobs <n>] [ - ] <repository> [<directory>]


描述


将存储库克隆到新创建的目录中,为克隆存储库中的每个分支创建远程跟踪分支(可见使用git branch -r),并创建并检出从克隆存储库的当前活动分支分叉的初始分支。


在克隆之后,git fetch没有参数的普通版将更新所有远程跟踪分支,并且git pull无参数将另外将远程主分支合并到当前主分支中(如果有的话)(当“–single-branch”为时,这是不真实的)给出;见下文)。


此默认配置是通过在refs/remotes/origin初始化remote.origin.url和remote.origin.fetch 配置变量下创建对远程分支头的引用来实现的。


OPTIONS

  • 本地

-l

当要克隆的存储库位于本地计算机上时,此标志会绕过正常的“Git感知”传输机制,并通过制作HEAD副本以及对象和refs目录下的所有内容来克隆存储库。目录下的.git/objects/文件是硬链接的,以便在可能的情况下节省空间。


如果将存储库指定为本地路径(例如/path/to/repo),则这是默认值,而–local本质上是无操作。如果将存储库指定为URL,则忽略此标志(并且我们从不使用本地优化)。使用常规Git传输–no-local时/path/to/repo,指定将覆盖默认值。


–no-硬链接

从本地文件系统上的存储库强制克隆进程,以复制目录下的.git/objects 文件,而不是使用硬链接。如果您尝试备份存储库,则可能需要这样做。


  • 共享

-s

当要克隆的存储库位于本地计算机上而不是使用硬链接时,会自动设置 .git/objects/info/alternates为与源存储库共享对象。生成的存储库在没有任何自己的对象的情况下开始。


注意:这是一个可能危险的操作; 你不,除非你了解它使用它。如果使用此选项克隆存储库,然后在源存储库中删除分支(或使用任何其他任何现有提交未引用的Git命令),则某些对象可能会变为未引用(或悬空)。这些对象可以通过git commit自动调用的普通Git操作(例如)来删除git gc --auto。(请参阅git-gc [1]。)如果删除了这些对象并被克隆的存储库引用,则克隆的存储库将损坏。


请注意,在克隆的存储库中git repack没有-l选项的情况下运行-s会将源存储库中的对象复制到克隆存储库中的包中,从而节省磁盘空间clone -s。但是,运行是安全的,默认情况下git gc使用该-l选项。


如果要打破-s在其源存储库中克隆的存储库的依赖关系,只需运行git repack -a将源存储库中的所有对象复制到克隆存储库中的包中。


–reference [-if-able]

如果引用存储库位于本地计算机上,则自动设置.git/objects/info/alternates以从引用存储库获取对象。使用现有存储库作为备用存储库将需要从克隆的存储库中复制更少的对象,从而降低网络和本地存储成本。使用时–reference-if-able,将跳过不存在的目录,并显示警告而不是中止克隆。


注意:请参阅–shared选项的注释以及 --dissociate选项。


  • 分离

从–reference仅使用选项指定的引用存储库中借用对象以减少网络传输,并在通过制作必要的借用对象本地副本进行克隆后停止从它们借用。当从已经从另一个存储库借用对象的存储库本地克隆时,也可以使用此选项 - 新存储库将从同一存储库中借用对象,并且此选项可用于停止借用。


  • 安静

-q

安静地操作。未向标准错误流报告进度。


–verbose

-v

详细地运行。不影响将进度状态报告给标准错误流。


  • 进展

除非指定了-q,否则在将标准错误流附加到终端时,默认情况下会报告进度状态。即使标准错误流未定向到终端,此标志也会强制进度状态。

–no结账

-n

克隆完成后不会检查HEAD。


制作一个简单的 Git存储库。也就是说,不是创建和放置管理文件,而是/.git使 自己成为$GIT_DIR。这显然意味着-n 因为无处可查看工作树。此外,远程处的分支头直接复制到相应的本地分支头,而不将其映射到refs/remotes/origin/。使用此选项时,既不会创建远程跟踪分支,也不会创建相关的配置变量。

  • 镜子

设置源存储库的镜像。这意味着–bare。相比之下–bare,–mirror不仅将源的本地分支映射到目标的本地分支,它还映射所有引用(包括远程跟踪分支,注释等)并设置refspec配置,以便所有这些引用被a git remote update中的a覆盖。目标存储库。


–origin

-o

而不是使用远程名称origin来跟踪上游存储库,请使用。


–branch

-b

而不是将新创建的HEAD指向克隆存储库的HEAD指向的分支,而是指向分支。在非裸存储库中,这是将要检出的分支。 --branch也可以在结果存储库中的提交处获取标记并分离HEAD。


–upload-pack

-u

给定时,通过ssh访问要克隆的存储库,这将指定另一端运行的命令的非默认路径。


–template = <template_directory>

指定将使用模板的目录; (参见git-init [1]的“TEMPLATE DIRECTORY”部分。)


–config =

-c =

在新创建的存储库中设置配置变量; 这在初始化存储库之后,但在获取远程历史记录或检出任何文件之前立即生效。密钥的格式与git-config [1](例如core.eol=true)的预期格式相同 。如果为同一个键指定了多个值,则每个值都将写入配置文件。例如,这样就可以安全地向源远程添加额外的fetch refspec。


由于当前实现的限制,一些配置变量在初始提取和检出之后才会生效。已知不生效的配置变量是: remote..mirror和remote..tagOpt。使用相应–mirror和–no-tags选项来代替。

–depth

创建一个浅层克隆,其历史记录被截断为指定的提交数。意味着–single-branch除非 --no-single-branch获取所有分支的提示附近的历史。如果要浅层克隆子模块,也要传递–shallow-submodules。


–shallow-因为= <日期>

在指定时间后创建具有历史记录的浅层克隆。


–shallow - 排除= <修订>

创建具有历史记录的浅层克隆,不包括可从指定的远程分支或标记访问的提交。可以多次指定此选项。


  • [无糖]单支

仅克隆导致单个分支的提示的历史记录,由–branch选项或主分支远程的HEAD点指定。进一步提取到生成的存储库只会更新分支的远程跟踪分支,此选项用于初始克隆。如果在进行–single-branch克隆时远程处的HEAD未指向任何分支,则不会创建远程跟踪分支。


–no标签

不要克隆任何标记,并remote..tagOpt=–no-tags在配置中设置 ,以确保将来git pull和git fetch操作不会遵循任何标记。后续的显式标记提取仍然有效(参见git-fetch [1])。


可以与–single-branch克隆和维护分支一起使用,除了单个克隆分支之外没有引用。这对于维护某些存储库的默认分支的最小克隆以用于搜索索引是有用的。


–recurse-子模块[= <pathspec]

创建克隆后,根据提供的pathspec初始化和克隆子模块。如果未提供pathspec,则初始化并克隆所有子模块。对于包含多个条目的pathspec,可以多次给出此选项。生成的克隆已submodule.active设置为提供的pathspec或“。” (如果没有提供pathspec,则表示所有子模块)。


子模块使用其默认设置进行初始化和克隆。这相当于git submodule update --init --recursive 克隆完成后立即运行 。如果克隆库不具有worktree /结帐忽略此选项(即如果任何的–no-checkout/ -n,–bare或–mirror给出)


  • [无糖]浅子模块

克隆的所有子模块都是浅的,深度为1。


–separate-git-dir =

不要将克隆的存储库放在应有的位置,而是将克隆的存储库放在指定的目录中,然后创建一个与文件系统无关的Git符号链接。结果是Git存储库可以与工作树分开。


-j

–jobs

同时获取的子模块数。默认为该submodule.fetchJobs选项。


<库>

要从中克隆的(可能是远程的)存储库。有关指定存储库的更多信息,请参阅下面的 GIT URLS部分。


<目录>

要克隆到的新目录的名称。如果没有明确给出目录(repofor /path/to/repo.git和foo for host.xz:foo/.git),则使用源存储库的“人性化”部分。仅当目录为空时才允许克隆到现有目录中。

相关文章
|
4月前
|
存储 JavaScript Linux
Git秘籍大公开:从基础概念到高级技巧的全面解析
在软件开发的征途中,Git如同导航明灯,以其分布式、高效的特性引领着团队前行。本篇博客将带您走进Git的世界,从诞生背景到核心操作流程,一一揭秘。我们将深入讲解工作区、暂存区、仓库区的概念,并详述Git单人本地仓库的操作步骤,包括创建、配置、提交、版本管理等。此外,还将展示Git远程仓库(如Github、Gitee)的协作魅力,通过实例演示项目克隆、多人协作、冲突解决及分支管理等高级技巧。
Git秘籍大公开:从基础概念到高级技巧的全面解析
|
5月前
|
Java
解析Java线程池:参数详解与执行流程
解析Java线程池:参数详解与执行流程
61 1
|
2月前
|
存储 Linux 开发工具
掌握版本控制的艺术:Git 技巧深度解析
在软件开发中,版本控制对于代码管理和团队协作至关重要。Git 作为最流行的分布式版本控制系统,凭借其强大的功能和灵活性成为开发者必备工具。本文深入探讨 Git 的高级技巧和最佳实践,包括交互式暂存、撤销提交、合并冲突处理等,帮助你更高效地使用 Git。通过遵循清晰的提交信息、保持提交原子性、利用分支开发等最佳实践,开发者可以更好地管理代码库,提升协作效率。
|
2月前
|
安全 网络安全 开发工具
深入探索Git:全面解析Git的用法与最佳实践
深入探索Git:全面解析Git的用法与最佳实践
57 2
|
2月前
|
JSON API 数据格式
requests库中json参数与data参数使用方法的深入解析
选择 `data`或 `json`取决于你的具体需求,以及服务器端期望接收的数据格式。
223 2
|
1月前
|
存储 缓存 并行计算
yolov5的train.py的参数信息解析
这篇文章解析了YOLOv5的`train.py`脚本中的参数信息,详细介绍了每个参数的功能和默认值,包括权重路径、模型配置、数据源、超参数、训练轮数、批量大小、图像尺寸、训练选项、设备选择、优化器设置等,以便用户可以根据需要自定义训练过程。
32 0
|
3月前
|
C# 开发者 Windows
震撼发布:全面解析WPF中的打印功能——从基础设置到高级定制,带你一步步实现直接打印文档的完整流程,让你的WPF应用程序瞬间升级,掌握这一技能,轻松应对各种打印需求,彻底告别打印难题!
【8月更文挑战第31天】打印功能在许多WPF应用中不可或缺,尤其在需要生成纸质文档时。WPF提供了强大的打印支持,通过`PrintDialog`等类简化了打印集成。本文将详细介绍如何在WPF应用中实现直接打印文档的功能,并通过具体示例代码展示其实现过程。
312 0
|
3月前
|
存储 Go UED
精通Go语言的命令行参数解析
【8月更文挑战第31天】
45 0
|
4月前
|
JSON API 数据处理
深度解析京东商品列表数据接口:功能、参数与实战技巧
京东商品列表数据接口让开发者通过HTTP请求获取京东商品详尽列表信息,包括ID、名称、价格等。接口支持参数化搜索(关键词、价格区间等),返回JSON格式数据,便于处理与分析。开发者需注册账号并创建应用以获取访问权限。应用场景涵盖市场调研、商品管理和营销策略制定等,有效提升数据驱动决策能力。
|
3月前
|
安全 数据安全/隐私保护

推荐镜像

更多