tiktok-sparo/zh-cn/pages/guide/getting_started/index.html
2024-08-22 13:53:46 -07:00

70 lines
No EOL
36 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-pages/guide/getting_started" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">入门指南 | Sparo</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://tiktok.github.io/sparo/zh-cn/images/site/sparo-ograph.png"><meta data-rh="true" name="twitter:image" content="https://tiktok.github.io/sparo/zh-cn/images/site/sparo-ograph.png"><meta data-rh="true" property="og:url" content="https://tiktok.github.io/sparo/zh-cn/pages/guide/getting_started/"><meta data-rh="true" property="og:locale" content="zh_cn"><meta data-rh="true" property="og:locale:alternate" content="en"><meta data-rh="true" name="docusaurus_locale" content="zh-cn"><meta data-rh="true" name="docsearch:language" content="zh-cn"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="入门指南 | Sparo"><meta data-rh="true" name="description" content="在本教程中,我们将重温快速演示的步骤,但这次我们将更详细地探讨 Sparo 的工作流程。"><meta data-rh="true" property="og:description" content="在本教程中,我们将重温快速演示的步骤,但这次我们将更详细地探讨 Sparo 的工作流程。"><link data-rh="true" rel="icon" href="/sparo/zh-cn/images/site/sparo-favicon.ico"><link data-rh="true" rel="canonical" href="https://tiktok.github.io/sparo/zh-cn/pages/guide/getting_started/"><link data-rh="true" rel="alternate" href="https://tiktok.github.io/sparo/pages/guide/getting_started/" hreflang="en"><link data-rh="true" rel="alternate" href="https://tiktok.github.io/sparo/zh-cn/pages/guide/getting_started/" hreflang="zh-cn"><link data-rh="true" rel="alternate" href="https://tiktok.github.io/sparo/pages/guide/getting_started/" hreflang="x-default"><link rel="stylesheet" href="/sparo/zh-cn/assets/css/styles.391b5f94.css">
<script src="/sparo/zh-cn/assets/js/runtime~main.613adfb8.js" defer="defer"></script>
<script src="/sparo/zh-cn/assets/js/main.2c4ece91.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="跳到主要内容"><a class="skipToContent_LamT" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/sparo/zh-cn/"><div class="navbar__logo"><img src="/sparo/zh-cn/images/site/sparo-title.svg" alt="Sparo" class="themedComponent_tC9f themedComponent--light_jvOP"><img src="/sparo/zh-cn/images/site/sparo-title-dark.svg" alt="Sparo" class="themedComponent_tC9f themedComponent--dark_id3o"></div><b class="navbar__title text--truncate"></b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_STns"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文(中国)</a><ul class="dropdown__menu"><li><a href="/sparo/pages/guide/getting_started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/sparo/zh-cn/pages/guide/getting_started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh-cn">中文(中国)</a></li></ul></div></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/sparo/zh-cn/pages/guide/getting_started/">文档</a><a href="https://github.com/tiktok/sparo" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_AFhm"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a class="navbar__item navbar__link" href="/sparo/zh-cn/pages/support/news/">新闻</a><a class="navbar__item navbar__link" href="/sparo/zh-cn/pages/support/help/">帮助</a><div class="toggle_dsLe colorModeToggle_c7_9"><button class="clean-btn toggleButton_q0G2 toggleButtonDisabled_vKJd" type="button" disabled="" title="切换浅色/暗黑模式(当前为浅色模式)" aria-label="切换浅色/暗黑模式(当前为浅色模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_ZA7w"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_BTHv"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="navbarSearchContainer_k7BV"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper__eEv"><div class="docsWrapper_yhQ2"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_nWl5" type="button"></button><div class="docRoot_uN8L"><aside class="theme-doc-sidebar-container docSidebarContainer_m9ih"><div class="sidebarViewport_lQsM"><div class="sidebar_u_rd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_tEKE"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--active">介绍</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/">概述</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/sparo/zh-cn/pages/guide/getting_started/">入门指南</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/guide/sparo_profiles/">Sparo 配置文件</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link">参考</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/reference/git_optimization/">Git 优化</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/reference/skeleton_folders/">骨架文件夹</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/reference/security/">安全性</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link">配置文件</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/configs/profile_json/">&lt;profile-name&gt;.json</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link">命令</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/overview/">概述</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_auto-config/">sparo auto-config</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_checkout/">sparo checkout</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_clone/">sparo clone</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_fetch/">sparo fetch</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_pull/">sparo pull</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_git-checkout/">sparo git-checkout</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_git-clone/">sparo git-clone</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_git-fetch/">sparo git-fetch</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_git-pull/">sparo git-pull</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_init-profile/">sparo init-profile</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/commands/sparo_list-profiles/">sparo list-profiles</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link">CI 命令</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/ci_commands/overview/">概述</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/ci_commands/sparo-ci_checkout/">sparo-ci checkout</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/ci_commands/sparo-ci_clone/">sparo-ci clone</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link">支持</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/support/help/">获取帮助</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/support/news/">更新内容</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sparo/zh-cn/pages/support/contributing/">贡献指南</a></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_rbFp"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_hig1"><div class="docItemContainer_BjA9"><article><div class="tocCollapsible_uNMm theme-doc-toc-mobile tocMobile_R8tC"><button type="button" class="clean-btn tocCollapsibleButton_IgjO">本页总览</button></div><div class="theme-doc-markdown markdown"><header><h1>入门指南</h1></header><p>在本教程中,我们将重温<a href="/sparo/zh-cn/#quick-demo">快速演示</a>的步骤,但这次我们将更详细地探讨 Sparo 的工作流程。</p>
<h2 class="anchor anchorWithStickyNavbar_tnRO" id="第-1-步升级-git">第 1 步:升级 Git<a href="#第-1-步升级-git" class="hash-link" aria-label="第 1 步:升级 Git的直接链接" title="第 1 步:升级 Git的直接链接"></a></h2>
<p>请记住将 Git 升级到最新版本!许多 Git 优化功能相对较新,在旧版本的软件中不可用。</p>
<p>对于 macOS我们推荐使用 <a href="https://git-scm.com/download/mac" target="_blank" rel="noopener noreferrer">brew install git</a>。对于其他操作系统,请参阅 <a href="https://git-scm.com/book/en/v2/Getting-Started-Installing-Git" target="_blank" rel="noopener noreferrer">Git 文档</a> 了解安装说明。</p>
<h2 class="anchor anchorWithStickyNavbar_tnRO" id="第-2-步克隆您的-rush-monorepo">第 2 步:克隆您的 Rush monorepo<a href="#第-2-步克隆您的-rush-monorepo" class="hash-link" aria-label="第 2 步:克隆您的 Rush monorepo的直接链接" title="第 2 步:克隆您的 Rush monorepo的直接链接"></a></h2>
<p>克隆您的 <a href="https://rushjs.io/" target="_blank" rel="noopener noreferrer">RushJS</a> monorepo</p>
<div class="language-shell codeBlockContainer_nK63 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_BFef"><pre tabindex="0" class="prism-code language-shell codeBlock_BUQB thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_dbG7"><span class="token-line" style="color:#393A34"><span class="token plain">sparo clone https://github.com/my-company/my-monorepo.git</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">cd</span><span class="token plain"> my-monorepo</span><br></span></code></pre><div class="buttonGroup_z3hN"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_p991" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_DQfU"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Yj5J"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>👉 <em>对于真实世界的演示,尝试克隆这个仓库:</em>
<a href="https://github.com/Azure/azure-sdk-for-js.git" target="_blank" rel="noopener noreferrer">https://github.com/Azure/azure-sdk-for-js.git</a></p>
<p><strong>&quot;sparo clone&quot; 的优化方式:</strong></p>
<ul>
<li>
<p>仅获取默认分支(通常是 <code>main</code> 分支)。这显著减少了下载大小。</p>
</li>
<li>
<p>启用了 Git 无 Blob 的<a href="/sparo/zh-cn/pages/reference/git_optimization/">部分克隆</a>以延迟下载文件内容。</p>
</li>
<li>
<p>使用 Git <a href="https://git-scm.com/docs/git-sparse-checkout" target="_blank" rel="noopener noreferrer">稀疏签出</a> 仅克隆<a href="/sparo/zh-cn/pages/reference/skeleton_folders/">&quot;骨架&quot;文件夹</a>,其中包括所有工作区的 <strong>package.json</strong> 文件,但不包括源代码子文件夹。</p>
</li>
<li>
<p>稀疏签出已配置为更高效的<a href="https://git-scm.com/docs/git-sparse-checkout#_internalsnon_cone_problems" target="_blank" rel="noopener noreferrer">&quot;锥形模式&quot;</a></p>
</li>
</ul>
<p><strong>提示:</strong> 如果想查看执行的操作和 Git 操作,使用 <code>sparo --debug clone</code> 代替 <code>sparo clone</code></p>
<blockquote>
<p>💡 目前支持 PNPM 和 Yarn 工作区的功能计划中,但尚未实现。欢迎贡献!</p>
</blockquote>
<h2 class="anchor anchorWithStickyNavbar_tnRO" id="第-3-步创建稀疏配置文件">第 3 步:创建稀疏配置文件<a href="#第-3-步创建稀疏配置文件" class="hash-link" aria-label="第 3 步:创建稀疏配置文件的直接链接" title="第 3 步:创建稀疏配置文件的直接链接"></a></h2>
<p>定义一个 <a href="/sparo/zh-cn/pages/configs/profile_json/">Sparo 配置文件</a>,描述 Git 稀疏签出的仓库文件夹子集。</p>
<div class="language-shell codeBlockContainer_nK63 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_BFef"><pre tabindex="0" class="prism-code language-shell codeBlock_BUQB thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_dbG7"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># 将模板写入 common/sparo-profiles/my-team.json</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sparo init-profile </span><span class="token parameter variable" style="color:#36acaa">--profile</span><span class="token plain"> my-team</span><br></span></code></pre><div class="buttonGroup_z3hN"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_p991" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_DQfU"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Yj5J"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>编辑创建的 <strong>my-team.json</strong> 文件并添加一个选择器。例如:</p>
<p><strong>common/sparo-profiles/my-team.json</strong></p>
<div class="language-json codeBlockContainer_nK63 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_BFef"><pre tabindex="0" class="prism-code language-json codeBlock_BUQB thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_dbG7"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;selections&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;selector&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;--to&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;argument&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;my-rush-project&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_z3hN"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_p991" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_DQfU"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Yj5J"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>👉 <em>如果您正在演示 <strong>azure-sdk-for-js</strong>,请将 <code>my-rush-project</code> 替换为 <code>@azure/arm-commerce</code></em></p>
<p>在上面的例子中,<code>--to</code> <a href="https://rushjs.io/pages/developer/selecting_subsets/#--to" target="_blank" rel="noopener noreferrer">项目选择器</a> 指示 Sparo 签出工作区中构建 <code>my-rush-project</code> 所需的所有依赖项。</p>
<div class="language-shell codeBlockContainer_nK63 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_BFef"><pre tabindex="0" class="prism-code language-shell codeBlock_BUQB thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_dbG7"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># 将您的配置文件提交到 Git。此步骤在快速演示中已跳过。</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Sparo 配置文件通常应存储在 Git 中,因为这可以使您在分支之间移动时无需担心</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># 某个分支中存在哪些项目。</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sparo </span><span class="token function" style="color:#d73a49">add</span><span class="token plain"> </span><span class="token builtin class-name">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sparo commit </span><span class="token parameter variable" style="color:#36acaa">-m</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;Created a new Sparo profile&quot;</span><br></span></code></pre><div class="buttonGroup_z3hN"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_p991" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_DQfU"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Yj5J"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_tnRO" id="第-4-步签出您的-sparo-配置文件">第 4 步:签出您的 Sparo 配置文件<a href="#第-4-步签出您的-sparo-配置文件" class="hash-link" aria-label="第 4 步:签出您的 Sparo 配置文件的直接链接" title="第 4 步:签出您的 Sparo 配置文件的直接链接"></a></h2>
<p><code>--profile</code> 参数可以与 <code>sparo checkout</code> 一起使用(未来也可以与 <code>sparo clone</code><code>sparo pull</code> 一起使用)。此参数指定要选择的 JSON 文件的名称。您还可以组合多个配置文件(<code>sparo checkout --profile p1 --profile p2</code>),在这种情况下,将使用它们选择的集合的并集。组合配置文件是一个高级场景,但在例如您的拉取请求将影响属于多个团队的项目集时非常有用。</p>
<p><strong>基于 common/sparo-profiles/my-team.json 的稀疏签出</strong></p>
<div class="language-shell codeBlockContainer_nK63 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_BFef"><pre tabindex="0" class="prism-code language-shell codeBlock_BUQB thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_dbG7"><span class="token-line" style="color:#393A34"><span class="token plain">sparo checkout </span><span class="token parameter variable" style="color:#36acaa">--profile</span><span class="token plain"> my-team</span><br></span></code></pre><div class="buttonGroup_z3hN"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_p991" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_DQfU"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Yj5J"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p><strong>关于 &quot;sparo checkout&quot; 的更多信息:</strong></p>
<ul>
<li>
<p>Sparo 根据您的配置文件选择自动生成 Git 的 <code>$GIT_DIR/info/sparse-checkout</code> <a href="https://git-scm.com/docs/git-sparse-checkout#_internalssparse_checkout" target="_blank" rel="noopener noreferrer">配置文件</a>。为避免冲突,请不要直接编辑此文件或使用其他工具(如 <code>git sparse-checkout</code>)重写它。(这样做不会破坏任何东西,但可能会干扰 Sparo 的操作。)</p>
</li>
<li>
<p>要仅签出骨架(返回到第 1 步尚未选择任何配置文件的初始状态),请指定 <code>--no-profile</code> 代替 <code>--profile NAME</code></p>
</li>
<li>
<p>要添加更多配置文件,并与现有选择组合,请使用 <code>--add-profile NAME</code> 代替 <code>--profile NAME</code>。例如,以下两个命令与 <code>sparo checkout --profile p1 --profile p2</code> 产生相同的结果:</p>
<div class="language-shell codeBlockContainer_nK63 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_BFef"><pre tabindex="0" class="prism-code language-shell codeBlock_BUQB thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_dbG7"><span class="token-line" style="color:#393A34"><span class="token plain">sparo checkout </span><span class="token parameter variable" style="color:#36acaa">--profile</span><span class="token plain"> p1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sparo checkout --add-profile p2</span><br></span></code></pre><div class="buttonGroup_z3hN"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_p991" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_DQfU"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Yj5J"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_tnRO" id="第-5-步使用mirrored子命令">第 5 步使用mirrored子命令<a href="#第-5-步使用mirrored子命令" class="hash-link" aria-label="第 5 步使用mirrored子命令的直接链接" title="第 5 步使用mirrored子命令的直接链接"></a></h2>
<p>在日常工作中,考虑选择 <a href="/sparo/zh-cn/pages/commands/overview/">mirrored子命令</a>,例如 <code>sparo revert</code> 而不是 <code>git revert</code>。Sparo 包装器提供 (1) 更好的默认设置,(2) 更好的性能建议,以及 (3) 可选的匿名化性能指标。</p>
<p>示例:</p>
<div class="language-shell codeBlockContainer_nK63 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_BFef"><pre tabindex="0" class="prism-code language-shell codeBlock_BUQB thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_dbG7"><span class="token-line" style="color:#393A34"><span class="token plain">sparo pull</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sparo commit </span><span class="token parameter variable" style="color:#36acaa">-m</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;Example command&quot;</span><br></span></code></pre><div class="buttonGroup_z3hN"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_p991" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_DQfU"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Yj5J"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/tiktok/sparo/tree/main/apps/website/docs/pages/guide/getting_started.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_asm8" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_UiTm"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/sparo/zh-cn/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">概述</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/sparo/zh-cn/pages/guide/sparo_profiles/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Sparo 配置文件</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_lG5c thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#第-1-步升级-git" class="table-of-contents__link toc-highlight">第 1 步:升级 Git</a></li><li><a href="#第-2-步克隆您的-rush-monorepo" class="table-of-contents__link toc-highlight">第 2 步:克隆您的 Rush monorepo</a></li><li><a href="#第-3-步创建稀疏配置文件" class="table-of-contents__link toc-highlight">第 3 步:创建稀疏配置文件</a></li><li><a href="#第-4-步签出您的-sparo-配置文件" class="table-of-contents__link toc-highlight">第 4 步:签出您的 Sparo 配置文件</a></li><li><a href="#第-5-步使用mirrored子命令" class="table-of-contents__link toc-highlight">第 5 步使用mirrored子命令</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 TikTok Pte. Ltd.</div></div></div></footer></div>
</body>
</html>