[{"data":1,"prerenderedAt":1220},["ShallowReactive",2],{"doc-page:\u002Fdocs\u002Fgit-setup":3},{"doc":4,"prev":1179,"next":1187,"resolvedType":8,"readingMinutes":131,"audience":1191,"checklist":1195,"related":1199},{"path":5,"title":6,"description":7,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":12,"publishedAt":12,"icon":13,"body":14},"\u002Fdocs\u002Fgit-setup","Git 安装与配置","Git 版本控制工具的安装、配置、常用命令与进阶技巧","article",null,"dev-environment","开发环境","2025-09-17","i-carbon-code",{"type":15,"value":16,"toc":1155},"minimark",[17,21,32,40,44,61,69,72,144,147,192,195,223,226,229,257,261,308,311,314,330,334,337,352,355,358,555,558,646,649,654,673,676,684,688,711,715,766,769,844,847,850,959,966,969,975,993,999,1002,1015,1022,1036,1039,1042,1060,1063,1083,1087,1093,1096,1151],[18,19,6],"h1",{"id":20},"git-安装与配置",[22,23,24,31],"p",{},[25,26,30],"a",{"href":27,"rel":28},"https:\u002F\u002Fgit-scm.com\u002F",[29],"nofollow","Git"," 是最流行的分布式版本控制系统。",[22,33,34,35,39],{},"这页适合作为“第一次把 Git 配顺手”的完整入口，不只是会 ",[36,37,38],"code",{},"clone \u002F commit \u002F push","，还要把身份、换行符、认证方式、日常同步习惯一次理顺。很多人对 Git 的痛苦，并不是命令难，而是初始化配置没做好。",[41,42,43],"h2",{"id":43},"安装",[45,46,51],"pre",{"className":47,"code":48,"language":49,"meta":50,"style":50},"language-powershell shiki shiki-themes github-light github-dark","winget install Git.Git\n","powershell","",[36,52,53],{"__ignoreMap":50},[54,55,58],"span",{"class":56,"line":57},"line",1,[54,59,48],{"class":60},"sVt8B",[22,62,63,64],{},"或从官网下载：",[25,65,68],{"href":66,"rel":67},"https:\u002F\u002Fgit-scm.com\u002Fdownload\u002Fwin",[29],"git-scm.com\u002Fdownload\u002Fwin",[41,70,71],{"id":71},"基础配置",[45,73,77],{"className":74,"code":75,"language":76,"meta":50,"style":50},"language-bash shiki shiki-themes github-light github-dark","git config --global user.name \"[name]\"\ngit config --global user.email \"[email]\"\ngit config --global init.defaultBranch main\ngit config --global core.autocrlf true\n","bash",[36,78,79,99,114,129],{"__ignoreMap":50},[54,80,81,85,89,93,96],{"class":56,"line":57},[54,82,84],{"class":83},"sScJk","git",[54,86,88],{"class":87},"sZZnC"," config",[54,90,92],{"class":91},"sj4cs"," --global",[54,94,95],{"class":87}," user.name",[54,97,98],{"class":87}," \"[name]\"\n",[54,100,102,104,106,108,111],{"class":56,"line":101},2,[54,103,84],{"class":83},[54,105,88],{"class":87},[54,107,92],{"class":91},[54,109,110],{"class":87}," user.email",[54,112,113],{"class":87}," \"[email]\"\n",[54,115,117,119,121,123,126],{"class":56,"line":116},3,[54,118,84],{"class":83},[54,120,88],{"class":87},[54,122,92],{"class":91},[54,124,125],{"class":87}," init.defaultBranch",[54,127,128],{"class":87}," main\n",[54,130,132,134,136,138,141],{"class":56,"line":131},4,[54,133,84],{"class":83},[54,135,88],{"class":87},[54,137,92],{"class":91},[54,139,140],{"class":87}," core.autocrlf",[54,142,143],{"class":91}," true\n",[22,145,146],{},"推荐继续补上几项高频配置：",[45,148,150],{"className":74,"code":149,"language":76,"meta":50,"style":50},"git config --global pull.rebase true\ngit config --global fetch.prune true\ngit config --global credential.helper manager-core\n",[36,151,152,165,178],{"__ignoreMap":50},[54,153,154,156,158,160,163],{"class":56,"line":57},[54,155,84],{"class":83},[54,157,88],{"class":87},[54,159,92],{"class":91},[54,161,162],{"class":87}," pull.rebase",[54,164,143],{"class":91},[54,166,167,169,171,173,176],{"class":56,"line":101},[54,168,84],{"class":83},[54,170,88],{"class":87},[54,172,92],{"class":91},[54,174,175],{"class":87}," fetch.prune",[54,177,143],{"class":91},[54,179,180,182,184,186,189],{"class":56,"line":116},[54,181,84],{"class":83},[54,183,88],{"class":87},[54,185,92],{"class":91},[54,187,188],{"class":87}," credential.helper",[54,190,191],{"class":87}," manager-core\n",[22,193,194],{},"补充说明：",[196,197,198,205,211,217],"ul",{},[199,200,201,202],"li",{},"Windows 原生开发通常用 ",[36,203,204],{},"core.autocrlf true",[199,206,207,208],{},"WSL、Linux、macOS 更推荐 ",[36,209,210],{},"core.autocrlf input",[199,212,213,216],{},[36,214,215],{},"pull.rebase true"," 可以减少无意义的 merge commit",[199,218,219,222],{},[36,220,221],{},"fetch.prune true"," 会自动清理已删除的远程分支引用",[41,224,225],{"id":225},"推荐配置顺序",[22,227,228],{},"建议第一次配置 Git 时按下面顺序完成：",[230,231,232,238,248,251,254],"ol",{},[199,233,234,235],{},"安装 Git 并确认 ",[36,236,237],{},"git --version",[199,239,240,241,244,245],{},"设置 ",[36,242,243],{},"user.name","、",[36,246,247],{},"user.email",[199,249,250],{},"选择 SSH 或 HTTPS 认证方式",[199,252,253],{},"处理换行符策略与凭据缓存",[199,255,256],{},"再开始 clone 仓库与日常提交流程",[41,258,260],{"id":259},"ssh-密钥","SSH 密钥",[45,262,264],{"className":74,"code":263,"language":76,"meta":50,"style":50},"# 生成密钥\nssh-keygen -t ed25519 -C \"[email]\"\n\n# 查看公钥\ncat ~\u002F.ssh\u002Fid_ed25519.pub\n",[36,265,266,272,288,294,299],{"__ignoreMap":50},[54,267,268],{"class":56,"line":57},[54,269,271],{"class":270},"sJ8bj","# 生成密钥\n",[54,273,274,277,280,283,286],{"class":56,"line":101},[54,275,276],{"class":83},"ssh-keygen",[54,278,279],{"class":91}," -t",[54,281,282],{"class":87}," ed25519",[54,284,285],{"class":91}," -C",[54,287,113],{"class":87},[54,289,290],{"class":56,"line":116},[54,291,293],{"emptyLinePlaceholder":292},true,"\n",[54,295,296],{"class":56,"line":131},[54,297,298],{"class":270},"# 查看公钥\n",[54,300,302,305],{"class":56,"line":301},5,[54,303,304],{"class":83},"cat",[54,306,307],{"class":87}," ~\u002F.ssh\u002Fid_ed25519.pub\n",[22,309,310],{},"将公钥添加到 GitHub：Settings → SSH and GPG keys → New SSH key",[22,312,313],{},"测试连接：",[45,315,317],{"className":74,"code":316,"language":76,"meta":50,"style":50},"ssh -T git@github.com\n",[36,318,319],{"__ignoreMap":50},[54,320,321,324,327],{"class":56,"line":57},[54,322,323],{"class":83},"ssh",[54,325,326],{"class":91}," -T",[54,328,329],{"class":87}," git@github.com\n",[41,331,333],{"id":332},"https-还是-ssh","HTTPS 还是 SSH",[22,335,336],{},"两种方式都能用，但长期开发通常更推荐 SSH：",[196,338,339,346],{},[199,340,341,345],{},[342,343,344],"strong",{},"SSH","：配置一次后更省心，适合经常 push \u002F pull 的开发机器",[199,347,348,351],{},[342,349,350],{},"HTTPS","：更适合临时环境、公司受限网络或只偶尔访问仓库的场景",[22,353,354],{},"如果你同时在 Windows 和 WSL 里开发，建议尽量统一一种方式，不然容易出现一边能推、一边权限失败的情况。",[41,356,357],{"id":357},"常用命令",[45,359,361],{"className":74,"code":360,"language":76,"meta":50,"style":50},"# 克隆仓库\ngit clone \u003Curl>\n\n# 查看状态\ngit status\n\n# 暂存与提交\ngit add -A\ngit commit -m \"feat: 描述\"\n\n# 推送与拉取\ngit push\ngit pull --rebase\n\n# 分支操作\ngit branch feature\u002Fxxx\ngit checkout -b feature\u002Fxxx\ngit merge feature\u002Fxxx\ngit branch -d feature\u002Fxxx\n\n# 查看日志\ngit log --oneline --graph --all\n",[36,362,363,368,388,392,397,404,409,415,426,440,445,451,459,470,475,481,492,505,515,527,532,538],{"__ignoreMap":50},[54,364,365],{"class":56,"line":57},[54,366,367],{"class":270},"# 克隆仓库\n",[54,369,370,372,375,379,382,385],{"class":56,"line":101},[54,371,84],{"class":83},[54,373,374],{"class":87}," clone",[54,376,378],{"class":377},"szBVR"," \u003C",[54,380,381],{"class":87},"ur",[54,383,384],{"class":60},"l",[54,386,387],{"class":377},">\n",[54,389,390],{"class":56,"line":116},[54,391,293],{"emptyLinePlaceholder":292},[54,393,394],{"class":56,"line":131},[54,395,396],{"class":270},"# 查看状态\n",[54,398,399,401],{"class":56,"line":301},[54,400,84],{"class":83},[54,402,403],{"class":87}," status\n",[54,405,407],{"class":56,"line":406},6,[54,408,293],{"emptyLinePlaceholder":292},[54,410,412],{"class":56,"line":411},7,[54,413,414],{"class":270},"# 暂存与提交\n",[54,416,418,420,423],{"class":56,"line":417},8,[54,419,84],{"class":83},[54,421,422],{"class":87}," add",[54,424,425],{"class":91}," -A\n",[54,427,429,431,434,437],{"class":56,"line":428},9,[54,430,84],{"class":83},[54,432,433],{"class":87}," commit",[54,435,436],{"class":91}," -m",[54,438,439],{"class":87}," \"feat: 描述\"\n",[54,441,443],{"class":56,"line":442},10,[54,444,293],{"emptyLinePlaceholder":292},[54,446,448],{"class":56,"line":447},11,[54,449,450],{"class":270},"# 推送与拉取\n",[54,452,454,456],{"class":56,"line":453},12,[54,455,84],{"class":83},[54,457,458],{"class":87}," push\n",[54,460,462,464,467],{"class":56,"line":461},13,[54,463,84],{"class":83},[54,465,466],{"class":87}," pull",[54,468,469],{"class":91}," --rebase\n",[54,471,473],{"class":56,"line":472},14,[54,474,293],{"emptyLinePlaceholder":292},[54,476,478],{"class":56,"line":477},15,[54,479,480],{"class":270},"# 分支操作\n",[54,482,484,486,489],{"class":56,"line":483},16,[54,485,84],{"class":83},[54,487,488],{"class":87}," branch",[54,490,491],{"class":87}," feature\u002Fxxx\n",[54,493,495,497,500,503],{"class":56,"line":494},17,[54,496,84],{"class":83},[54,498,499],{"class":87}," checkout",[54,501,502],{"class":91}," -b",[54,504,491],{"class":87},[54,506,508,510,513],{"class":56,"line":507},18,[54,509,84],{"class":83},[54,511,512],{"class":87}," merge",[54,514,491],{"class":87},[54,516,518,520,522,525],{"class":56,"line":517},19,[54,519,84],{"class":83},[54,521,488],{"class":87},[54,523,524],{"class":91}," -d",[54,526,491],{"class":87},[54,528,530],{"class":56,"line":529},20,[54,531,293],{"emptyLinePlaceholder":292},[54,533,535],{"class":56,"line":534},21,[54,536,537],{"class":270},"# 查看日志\n",[54,539,541,543,546,549,552],{"class":56,"line":540},22,[54,542,84],{"class":83},[54,544,545],{"class":87}," log",[54,547,548],{"class":91}," --oneline",[54,550,551],{"class":91}," --graph",[54,553,554],{"class":91}," --all\n",[41,556,557],{"id":557},"常用别名",[45,559,561],{"className":74,"code":560,"language":76,"meta":50,"style":50},"git config --global alias.co checkout\ngit config --global alias.br branch\ngit config --global alias.st status\ngit config --global alias.lg \"log --oneline --graph --all\"\ngit config --global alias.cm \"commit -m\"\ngit config --global alias.last \"log -1 HEAD\"\n",[36,562,563,577,591,604,618,632],{"__ignoreMap":50},[54,564,565,567,569,571,574],{"class":56,"line":57},[54,566,84],{"class":83},[54,568,88],{"class":87},[54,570,92],{"class":91},[54,572,573],{"class":87}," alias.co",[54,575,576],{"class":87}," checkout\n",[54,578,579,581,583,585,588],{"class":56,"line":101},[54,580,84],{"class":83},[54,582,88],{"class":87},[54,584,92],{"class":91},[54,586,587],{"class":87}," alias.br",[54,589,590],{"class":87}," branch\n",[54,592,593,595,597,599,602],{"class":56,"line":116},[54,594,84],{"class":83},[54,596,88],{"class":87},[54,598,92],{"class":91},[54,600,601],{"class":87}," alias.st",[54,603,403],{"class":87},[54,605,606,608,610,612,615],{"class":56,"line":131},[54,607,84],{"class":83},[54,609,88],{"class":87},[54,611,92],{"class":91},[54,613,614],{"class":87}," alias.lg",[54,616,617],{"class":87}," \"log --oneline --graph --all\"\n",[54,619,620,622,624,626,629],{"class":56,"line":301},[54,621,84],{"class":83},[54,623,88],{"class":87},[54,625,92],{"class":91},[54,627,628],{"class":87}," alias.cm",[54,630,631],{"class":87}," \"commit -m\"\n",[54,633,634,636,638,640,643],{"class":56,"line":406},[54,635,84],{"class":83},[54,637,88],{"class":87},[54,639,92],{"class":91},[54,641,642],{"class":87}," alias.last",[54,644,645],{"class":87}," \"log -1 HEAD\"\n",[41,647,648],{"id":648},"进阶技巧",[650,651,653],"h3",{"id":652},"gitignore-全局配置",".gitignore 全局配置",[45,655,657],{"className":74,"code":656,"language":76,"meta":50,"style":50},"git config --global core.excludesfile ~\u002F.gitignore_global\n",[36,658,659],{"__ignoreMap":50},[54,660,661,663,665,667,670],{"class":56,"line":57},[54,662,84],{"class":83},[54,664,88],{"class":87},[54,666,92],{"class":91},[54,668,669],{"class":87}," core.excludesfile",[54,671,672],{"class":87}," ~\u002F.gitignore_global\n",[22,674,675],{},"常用全局忽略：",[45,677,682],{"className":678,"code":680,"language":681},[679],"language-text",".DS_Store\nThumbs.db\n*.swp\n.env\n.vscode\u002F\nnode_modules\u002F\n","text",[36,683,680],{"__ignoreMap":50},[650,685,687],{"id":686},"交互式-rebase","交互式 rebase",[45,689,691],{"className":74,"code":690,"language":76,"meta":50,"style":50},"# 修改最近 3 次提交\ngit rebase -i HEAD~3\n",[36,692,693,698],{"__ignoreMap":50},[54,694,695],{"class":56,"line":57},[54,696,697],{"class":270},"# 修改最近 3 次提交\n",[54,699,700,702,705,708],{"class":56,"line":101},[54,701,84],{"class":83},[54,703,704],{"class":87}," rebase",[54,706,707],{"class":91}," -i",[54,709,710],{"class":87}," HEAD~3\n",[650,712,714],{"id":713},"stash-暂存","stash 暂存",[45,716,718],{"className":74,"code":717,"language":76,"meta":50,"style":50},"git stash           # 暂存当前修改\ngit stash pop       # 恢复暂存\ngit stash list      # 查看暂存列表\ngit stash drop      # 删除暂存\n",[36,719,720,730,742,754],{"__ignoreMap":50},[54,721,722,724,727],{"class":56,"line":57},[54,723,84],{"class":83},[54,725,726],{"class":87}," stash",[54,728,729],{"class":270},"           # 暂存当前修改\n",[54,731,732,734,736,739],{"class":56,"line":101},[54,733,84],{"class":83},[54,735,726],{"class":87},[54,737,738],{"class":87}," pop",[54,740,741],{"class":270},"       # 恢复暂存\n",[54,743,744,746,748,751],{"class":56,"line":116},[54,745,84],{"class":83},[54,747,726],{"class":87},[54,749,750],{"class":87}," list",[54,752,753],{"class":270},"      # 查看暂存列表\n",[54,755,756,758,760,763],{"class":56,"line":131},[54,757,84],{"class":83},[54,759,726],{"class":87},[54,761,762],{"class":87}," drop",[54,764,765],{"class":270},"      # 删除暂存\n",[650,767,768],{"id":768},"撤销操作",[45,770,772],{"className":74,"code":771,"language":76,"meta":50,"style":50},"# 撤销最近一次提交（保留修改）\ngit reset --soft HEAD~1\n\n# 撤销暂存\ngit restore --staged \u003Cfile>\n\n# 丢弃工作区修改\ngit restore \u003Cfile>\n",[36,773,774,779,792,796,801,821,825,830],{"__ignoreMap":50},[54,775,776],{"class":56,"line":57},[54,777,778],{"class":270},"# 撤销最近一次提交（保留修改）\n",[54,780,781,783,786,789],{"class":56,"line":101},[54,782,84],{"class":83},[54,784,785],{"class":87}," reset",[54,787,788],{"class":91}," --soft",[54,790,791],{"class":87}," HEAD~1\n",[54,793,794],{"class":56,"line":116},[54,795,293],{"emptyLinePlaceholder":292},[54,797,798],{"class":56,"line":131},[54,799,800],{"class":270},"# 撤销暂存\n",[54,802,803,805,808,811,813,816,819],{"class":56,"line":301},[54,804,84],{"class":83},[54,806,807],{"class":87}," restore",[54,809,810],{"class":91}," --staged",[54,812,378],{"class":377},[54,814,815],{"class":87},"fil",[54,817,818],{"class":60},"e",[54,820,387],{"class":377},[54,822,823],{"class":56,"line":406},[54,824,293],{"emptyLinePlaceholder":292},[54,826,827],{"class":56,"line":411},[54,828,829],{"class":270},"# 丢弃工作区修改\n",[54,831,832,834,836,838,840,842],{"class":56,"line":417},[54,833,84],{"class":83},[54,835,807],{"class":87},[54,837,378],{"class":377},[54,839,815],{"class":87},[54,841,818],{"class":60},[54,843,387],{"class":377},[41,845,846],{"id":846},"日常工作流建议",[22,848,849],{},"一个相对稳妥的日常节奏通常是：",[45,851,853],{"className":74,"code":852,"language":76,"meta":50,"style":50},"git switch main\ngit pull --rebase\ngit switch -c feature\u002Fxxx\n\n# 开发中\ngit status\ngit add -A\ngit commit -m \"feat: 描述\"\n\n# 同步主线\ngit fetch origin\ngit rebase origin\u002Fmain\ngit push -u origin feature\u002Fxxx\n",[36,854,855,864,872,883,887,892,898,906,916,920,925,935,944],{"__ignoreMap":50},[54,856,857,859,862],{"class":56,"line":57},[54,858,84],{"class":83},[54,860,861],{"class":87}," switch",[54,863,128],{"class":87},[54,865,866,868,870],{"class":56,"line":101},[54,867,84],{"class":83},[54,869,466],{"class":87},[54,871,469],{"class":91},[54,873,874,876,878,881],{"class":56,"line":116},[54,875,84],{"class":83},[54,877,861],{"class":87},[54,879,880],{"class":91}," -c",[54,882,491],{"class":87},[54,884,885],{"class":56,"line":131},[54,886,293],{"emptyLinePlaceholder":292},[54,888,889],{"class":56,"line":301},[54,890,891],{"class":270},"# 开发中\n",[54,893,894,896],{"class":56,"line":406},[54,895,84],{"class":83},[54,897,403],{"class":87},[54,899,900,902,904],{"class":56,"line":411},[54,901,84],{"class":83},[54,903,422],{"class":87},[54,905,425],{"class":91},[54,907,908,910,912,914],{"class":56,"line":417},[54,909,84],{"class":83},[54,911,433],{"class":87},[54,913,436],{"class":91},[54,915,439],{"class":87},[54,917,918],{"class":56,"line":428},[54,919,293],{"emptyLinePlaceholder":292},[54,921,922],{"class":56,"line":442},[54,923,924],{"class":270},"# 同步主线\n",[54,926,927,929,932],{"class":56,"line":447},[54,928,84],{"class":83},[54,930,931],{"class":87}," fetch",[54,933,934],{"class":87}," origin\n",[54,936,937,939,941],{"class":56,"line":453},[54,938,84],{"class":83},[54,940,704],{"class":87},[54,942,943],{"class":87}," origin\u002Fmain\n",[54,945,946,948,951,954,957],{"class":56,"line":461},[54,947,84],{"class":83},[54,949,950],{"class":87}," push",[54,952,953],{"class":91}," -u",[54,955,956],{"class":87}," origin",[54,958,491],{"class":87},[22,960,961,962,965],{},"如果团队走 Pull Request 流程，尽量避免长期在 ",[36,963,964],{},"main"," 直接开发；把主分支保持在“随时可发布”的状态，会让 CI、回滚和协作都轻松很多。",[41,967,968],{"id":968},"常见问题",[650,970,972],{"id":971},"permission-denied-publickey",[36,973,974],{},"Permission denied (publickey)",[196,976,977,984,990],{},[199,978,979,980,983],{},"检查 ",[36,981,982],{},"~\u002F.ssh\u002Fid_ed25519.pub"," 是否真的加到平台账号里",[199,985,986,987],{},"确认当前 clone 地址是不是 ",[36,988,989],{},"git@github.com:...",[199,991,992],{},"Windows 与 WSL 使用的是不同家目录时，要注意密钥文件不共用",[650,994,996],{"id":995},"your-branch-and-originmain-have-diverged",[36,997,998],{},"Your branch and 'origin\u002Fmain' have diverged",[22,1000,1001],{},"通常说明本地和远程都有新提交。优先尝试：",[45,1003,1005],{"className":74,"code":1004,"language":76,"meta":50,"style":50},"git pull --rebase\n",[36,1006,1007],{"__ignoreMap":50},[54,1008,1009,1011,1013],{"class":56,"line":57},[54,1010,84],{"class":83},[54,1012,466],{"class":87},[54,1014,469],{"class":91},[22,1016,1017,1018,1021],{},"如果之前已经产生冲突，先解决冲突、",[36,1019,1020],{},"git add"," 后再执行：",[45,1023,1025],{"className":74,"code":1024,"language":76,"meta":50,"style":50},"git rebase --continue\n",[36,1026,1027],{"__ignoreMap":50},[54,1028,1029,1031,1033],{"class":56,"line":57},[54,1030,84],{"class":83},[54,1032,704],{"class":87},[54,1034,1035],{"class":91}," --continue\n",[650,1037,1038],{"id":1038},"换行符反复变化",[22,1040,1041],{},"这通常不是代码真改了，而是行尾格式没统一。Windows、WSL、CI 同时参与时，尤其要尽早确认：",[196,1043,1044,1050,1053],{},[199,1045,1046,1047],{},"当前仓库是否有 ",[36,1048,1049],{},".gitattributes",[199,1051,1052],{},"团队是否统一使用 LF",[199,1054,1055,1056,1059],{},"本机是否把 ",[36,1057,1058],{},"core.autocrlf"," 配成了与环境不匹配的值",[41,1061,1062],{"id":1062},"延伸阅读",[196,1064,1065,1071,1077],{},[199,1066,1067],{},[25,1068,1070],{"href":1069},"\u002Fdocs\u002Fgit-advanced","Git 高级技巧",[199,1072,1073],{},[25,1074,1076],{"href":1075},"\u002Fdocs\u002Fssh-config","SSH 配置与免密登录",[199,1078,1079],{},[25,1080,1082],{"href":1081},"\u002Fdocs\u002Fgithub-actions","GitHub Actions 入门",[41,1084,1086],{"id":1085},"conventional-commits-规范","Conventional Commits 规范",[45,1088,1091],{"className":1089,"code":1090,"language":681},[679],"type(scope): 简短描述\n\nfeat:     新功能\nfix:      修复 bug\nrefactor: 重构\nstyle:    样式调整\nperf:     性能优化\ntest:     测试\ndocs:     文档\nchore:    杂项\n",[36,1092,1090],{"__ignoreMap":50},[41,1094,1095],{"id":1095},"参考链接",[196,1097,1098,1105,1112,1119,1127,1135,1143],{},[199,1099,1100,1104],{},[25,1101,1103],{"href":1102},"\u002Fsetup","Windows 重装部署清单"," — 重装后的主清单入口",[199,1106,1107,1111],{},[25,1108,1110],{"href":1109},"\u002Fdocs\u002Fwindows-machine-log","Windows 重装部署清单（详情）"," — 逐项版本与下载链接",[199,1113,1114,1118],{},[25,1115,1117],{"href":27,"rel":1116},[29],"Git 官网"," — 下载与文档",[199,1120,1121,1126],{},[25,1122,1125],{"href":1123,"rel":1124},"https:\u002F\u002Fgithub.com\u002Fgit\u002Fgit",[29],"Git GitHub"," — 源码",[199,1128,1129,1134],{},[25,1130,1133],{"href":1131,"rel":1132},"https:\u002F\u002Fgit-scm.com\u002Fbook\u002Fzh\u002Fv2",[29],"Pro Git 中文版"," — 免费电子书",[199,1136,1137,1142],{},[25,1138,1141],{"href":1139,"rel":1140},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fauthentication\u002Fconnecting-to-github-with-ssh",[29],"GitHub SSH 文档"," — 官方指南",[199,1144,1145,1150],{},[25,1146,1149],{"href":1147,"rel":1148},"https:\u002F\u002Fwww.conventionalcommits.org\u002Fzh-hans\u002F",[29],"Conventional Commits"," — 提交规范",[1152,1153,1154],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":50,"searchDepth":101,"depth":101,"links":1156},[1157,1158,1159,1160,1161,1162,1163,1164,1170,1171,1176,1177,1178],{"id":43,"depth":101,"text":43},{"id":71,"depth":101,"text":71},{"id":225,"depth":101,"text":225},{"id":259,"depth":101,"text":260},{"id":332,"depth":101,"text":333},{"id":357,"depth":101,"text":357},{"id":557,"depth":101,"text":557},{"id":648,"depth":101,"text":648,"children":1165},[1166,1167,1168,1169],{"id":652,"depth":116,"text":653},{"id":686,"depth":116,"text":687},{"id":713,"depth":116,"text":714},{"id":768,"depth":116,"text":768},{"id":846,"depth":101,"text":846},{"id":968,"depth":101,"text":968,"children":1172},[1173,1174,1175],{"id":971,"depth":116,"text":974},{"id":995,"depth":116,"text":998},{"id":1038,"depth":116,"text":1038},{"id":1062,"depth":101,"text":1062},{"id":1085,"depth":101,"text":1086},{"id":1095,"depth":101,"text":1095},{"path":1180,"title":1181,"description":1182,"docType":8,"resourceKind":9,"categoryId":1183,"categoryLabel":1184,"updatedAt":1185,"publishedAt":1185,"icon":1186},"\u002Fdocs\u002Fsandboxie-plus","Sandboxie-Plus","Sandboxie-Plus 的用途、安装方式、下载入口和当前保留位置。","windows-system","Windows 系统","2025-10-06","i-mdi-microsoft-windows",{"path":1188,"title":1189,"description":1190,"docType":8,"resourceKind":9,"categoryId":1183,"categoryLabel":1184,"updatedAt":12,"publishedAt":12,"icon":1186},"\u002Fdocs\u002Fwsl-setup","WSL 安装与配置","Windows Subsystem for Linux 安装、配置、文件互通与开发环境搭建",[1192,1193,1194],"希望把零散经验整理成长期可复用工作流的人","正在搭建开发环境、统一工具链或排查构建问题的开发者","希望阅读时顺手建立自己的操作清单或收藏体系的人",[1196,1197,1198],"先浏览标题、摘要和目录，带着问题阅读会更高效","确认本机 Node、包管理器、终端和仓库依赖版本是否一致","如果页面里提到相关文档，尽量一起打开对照，效果通常更完整",[1200,1205,1210,1215],{"path":1201,"title":1202,"description":1203,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":1204,"publishedAt":1204,"icon":13},"\u002Fdocs\u002Flocal-setup","本地运行与部署","使用 bun 安装、开发、构建与预览 DomiVault 的完整本地流程与排障指引","2026-03-10",{"path":1206,"title":1207,"description":1208,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":1209,"publishedAt":1209,"icon":13},"\u002Fdocs\u002Fvolta-guide","Volta Node 版本管理","使用 Volta 管理 Node.js、npm、pnpm 和 Yarn，并在项目中固定 JavaScript 工具链版本","2026-03-08",{"path":1211,"title":1212,"description":1213,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":1214,"publishedAt":1214,"icon":13},"\u002Fdocs\u002Fpnpm-monorepo","pnpm 与 Monorepo","pnpm 使用技巧、workspace 配置、Monorepo 项目管理与 Turborepo","2026-02-28",{"path":1216,"title":1217,"description":1218,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":1219,"publishedAt":1219,"icon":13},"\u002Fdocs\u002Fenv-variables","环境变量管理","dotenv 配置、各平台环境变量设置、.env 文件规范与安全实践","2026-02-27",1776215712975]