[{"data":1,"prerenderedAt":1136},["ShallowReactive",2],{"content:\u002F2026\u002Fgit-notes":3,"surround:\u002F2026\u002Fgit-notes":1130},{"id":4,"title":5,"body":6,"categories":1101,"date":1104,"description":1105,"draft":1106,"extension":1107,"image":1108,"meta":1109,"navigation":1113,"path":1114,"permalink":1115,"published":1115,"readingTime":1116,"recommend":1115,"references":1115,"seo":1121,"sitemap":1122,"stem":1123,"tags":1124,"type":1128,"updated":1104,"__hash__":1129},"content\u002Fposts\u002F2026\u002Fgit-notes.md","Git用法简记",{"type":7,"value":8,"toc":1062},"minimark",[9,16,21,26,29,40,43,49,52,58,61,67,71,74,80,83,89,92,98,101,105,109,115,118,124,128,134,137,143,145,149,153,159,163,169,173,179,183,189,196,202,209,213,219,223,229,231,235,239,245,249,255,269,275,279,285,288,294,298,304,306,310,314,320,324,504,507,513,517,523,527,533,535,539,543,551,573,577,701,705,711,714,720,743,746,752,754,758],[10,11,12],"alert",{},[13,14,15],"p",{},"文章部分内容存在AI修改",[17,18,20],"h2",{"id":19},"一初始配置","一、初始配置",[22,23,25],"h3",{"id":24},"_11-配置用户名和邮箱","1.1 配置用户名和邮箱",[13,27,28],{},"每次提交都会记录作者信息，必须先配置：",[30,31,37],"pre",{"className":32,"code":34,"language":35,"meta":36},[33],"language-bash","git config --global user.name \"你的名字\"\ngit config --global user.email \"你的邮箱@example.com\"\n","bash","",[38,39,34],"code",{"__ignoreMap":36},[13,41,42],{},"建议设置默认分支名：",[30,44,47],{"className":45,"code":46,"language":35,"meta":36},[33],"git config --global init.defaultBranch main\n",[38,48,46],{"__ignoreMap":36},[13,50,51],{},"设置编辑器：",[30,53,56],{"className":54,"code":55,"language":35,"meta":36},[33],"# 使用 VS Code\ngit config --global core.editor \"code --wait\"\n\n# 或使用 Vim\ngit config --global core.editor \"vim\"\n",[38,57,55],{"__ignoreMap":36},[13,59,60],{},"查看配置：",[30,62,65],{"className":63,"code":64,"language":35,"meta":36},[33],"git config --list --show-origin\n",[38,66,64],{"__ignoreMap":36},[22,68,70],{"id":69},"_12-配置-ssh","1.2 配置 SSH",[13,72,73],{},"配置邮箱地址(账号邮箱)：",[30,75,78],{"className":76,"code":77,"language":35,"meta":36},[33],"ssh-keygen -t ed25519 -C \"邮箱@example.com\"\n",[38,79,77],{"__ignoreMap":36},[13,81,82],{},"查看公钥：",[30,84,87],{"className":85,"code":86,"language":35,"meta":36},[33],"cat ~\u002F.ssh\u002Fid_ed25519.pub\n",[38,88,86],{"__ignoreMap":36},[13,90,91],{},"命令测试连通性：",[30,93,96],{"className":94,"code":95,"language":35,"meta":36},[33],"ssh -T git@github.com\n",[38,97,95],{"__ignoreMap":36},[99,100],"hr",{},[17,102,104],{"id":103},"二创建和获取仓库","二、创建和获取仓库",[22,106,108],{"id":107},"_21-在本地新建仓库","2.1 在本地新建仓库",[30,110,113],{"className":111,"code":112,"language":35,"meta":36},[33],"mkdir my-project\ncd my-project\ngit init\n",[38,114,112],{"__ignoreMap":36},[13,116,117],{},"查看状态：",[30,119,122],{"className":120,"code":121,"language":35,"meta":36},[33],"git status\n",[38,123,121],{"__ignoreMap":36},[22,125,127],{"id":126},"_22-克隆远程仓库","2.2 克隆远程仓库",[30,129,132],{"className":130,"code":131,"language":35,"meta":36},[33],"git clone git@github.com:user\u002Frepo.git\n",[38,133,131],{"__ignoreMap":36},[13,135,136],{},"指定目录名：",[30,138,141],{"className":139,"code":140,"language":35,"meta":36},[33],"git clone git@github.com:user\u002Frepo.git my-dir\n",[38,142,140],{"__ignoreMap":36},[99,144],{},[17,146,148],{"id":147},"三基础命令操作","三、基础命令操作",[22,150,152],{"id":151},"_31-一次标准提交流程","3.1 一次标准提交流程",[30,154,157],{"className":155,"code":156,"language":35,"meta":36},[33],"git status          # 查看哪些文件变了\ngit add \u003C文件>       # 把修改放入暂存区\ngit commit -m \"说明\" # 提交到本地仓库\ngit push            # 推送到远程仓库\n",[38,158,156],{"__ignoreMap":36},[22,160,162],{"id":161},"_32-查看状态","3.2 查看状态",[30,164,167],{"className":165,"code":166,"language":35,"meta":36},[33],"git status\ngit status -s   # 简洁模式\n",[38,168,166],{"__ignoreMap":36},[22,170,172],{"id":171},"_33-暂存文件","3.3 暂存文件",[30,174,177],{"className":175,"code":176,"language":35,"meta":36},[33],"git add README.md\ngit add src\u002F\ngit add .          # 暂存当前目录所有变化\ngit add -A         # 暂存所有变化，包括删除\ngit add -p         # 交互式分块暂存，推荐\n",[38,178,176],{"__ignoreMap":36},[22,180,182],{"id":181},"_34-提交","3.4 提交",[30,184,187],{"className":185,"code":186,"language":35,"meta":36},[33],"git commit -m \"feat: 添加登录功能\"\n",[38,188,186],{"__ignoreMap":36},[13,190,191,192,195],{},"如果文件已经被跟踪过，可以跳过 ",[38,193,194],{"code":194},"git add","：",[30,197,200],{"className":198,"code":199,"language":35,"meta":36},[33],"git commit -am \"fix: 修复登录按钮\"\n",[38,201,199],{"__ignoreMap":36},[13,203,204,205,208],{},"注意：",[38,206,207],{"code":207},"-a"," 不会包含新文件。",[22,210,212],{"id":211},"_35-查看历史","3.5 查看历史",[30,214,217],{"className":215,"code":216,"language":35,"meta":36},[33],"git log\ngit log --oneline\ngit log --oneline --graph --decorate --all\ngit log -p          # 显示每次提交的差异\ngit shortlog -sn    # 按作者统计提交数\n",[38,218,216],{"__ignoreMap":36},[22,220,222],{"id":221},"_36-查看差异","3.6 查看差异",[30,224,227],{"className":225,"code":226,"language":35,"meta":36},[33],"git diff            # 工作区 vs 暂存区\ngit diff --staged   # 暂存区 vs 最近提交\ngit diff HEAD       # 工作区 vs 最近提交\n",[38,228,226],{"__ignoreMap":36},[99,230],{},[17,232,234],{"id":233},"四远程仓库与协作","四、远程仓库与协作",[22,236,238],{"id":237},"_41-添加远程仓库","4.1 添加远程仓库",[30,240,243],{"className":241,"code":242,"language":35,"meta":36},[33],"git remote add origin git@github.com:user\u002Frepo.git\ngit remote -v\n",[38,244,242],{"__ignoreMap":36},[22,246,248],{"id":247},"_42-首次推送","4.2 首次推送",[30,250,253],{"className":251,"code":252,"language":35,"meta":36},[33],"git push -u origin main\n",[38,254,252],{"__ignoreMap":36},[13,256,257,260,261,264,265,268],{},[38,258,259],{"code":259},"-u"," 会建立本地 ",[38,262,263],{"code":263},"main"," 和远程 ",[38,266,267],{"code":267},"origin\u002Fmain"," 的跟踪关系。以后直接：",[30,270,273],{"className":271,"code":272,"language":35,"meta":36},[33],"git push\n",[38,274,272],{"__ignoreMap":36},[22,276,278],{"id":277},"_43-拉取远程更新","4.3 拉取远程更新",[30,280,283],{"className":281,"code":282,"language":35,"meta":36},[33],"git fetch origin          # 只下载，不合并\ngit pull origin main      # 下载并合并\ngit pull --rebase origin main  # 下载并变基，历史更整洁\n",[38,284,282],{"__ignoreMap":36},[13,286,287],{},"推荐日常使用：",[30,289,292],{"className":290,"code":291,"language":35,"meta":36},[33],"git pull --rebase\n",[38,293,291],{"__ignoreMap":36},[22,295,297],{"id":296},"_44-查看远程信息","4.4 查看远程信息",[30,299,302],{"className":300,"code":301,"language":35,"meta":36},[33],"git remote -v\ngit branch -vv\n",[38,303,301],{"__ignoreMap":36},[99,305],{},[17,307,309],{"id":308},"五git-commit-写法","五、git commit 写法",[22,311,313],{"id":312},"_51-基本写法","5.1 基本写法",[30,315,318],{"className":316,"code":317,"language":35,"meta":36},[33],"git add .\ngit commit -m \"feat: 添加登录功能\"\ngit commit -am \"fix: 修复样式\"        # 已跟踪文件\ngit commit                            # 打开编辑器写多行\ngit commit -m \"标题\" -m \"正文\"        # 多个 -m\ngit commit -F commit-message.txt      # 从文件读取\n",[38,319,317],{"__ignoreMap":36},[22,321,323],{"id":322},"_52-常用参数","5.2 常用参数",[325,326,327,340],"table",{},[328,329,330],"thead",{},[331,332,333,337],"tr",{},[334,335,336],"th",{},"参数",[334,338,339],{},"作用",[341,342,343,354,363,373,386,396,410,420,430,440,450,460,470,484,494],"tbody",{},[331,344,345,351],{},[346,347,348],"td",{},[38,349,350],{"code":350},"-m \"信息\"",[346,352,353],{},"直接指定提交信息",[331,355,356,360],{},[346,357,358],{},[38,359,207],{"code":207},[346,361,362],{},"自动暂存已跟踪文件的修改",[331,364,365,370],{},[346,366,367],{},[38,368,369],{"code":369},"--amend",[346,371,372],{},"修改最近一次提交",[331,374,375,380],{},[346,376,377],{},[38,378,379],{"code":379},"--no-edit",[346,381,382,383,385],{},"配合 ",[38,384,369],{"code":369},"，不修改提交信息",[331,387,388,393],{},[346,389,390],{},[38,391,392],{"code":392},"-v",[346,394,395],{},"在编辑器中显示 diff",[331,397,398,407],{},[346,399,400,403,404],{},[38,401,402],{"code":402},"-p"," \u002F ",[38,405,406],{"code":406},"--patch",[346,408,409],{},"交互式选择要提交的代码块",[331,411,412,417],{},[346,413,414],{},[38,415,416],{"code":416},"--allow-empty",[346,418,419],{},"允许空提交，常用于触发 CI",[331,421,422,427],{},[346,423,424],{},[38,425,426],{"code":426},"-F \u003C文件>",[346,428,429],{},"从文件读取提交信息",[331,431,432,437],{},[346,433,434],{},[38,435,436],{"code":436},"--author=\"Name \u003Cemail>\"",[346,438,439],{},"指定作者",[331,441,442,447],{},[346,443,444],{},[38,445,446],{"code":446},"--date=\"...\"",[346,448,449],{},"指定提交日期",[331,451,452,457],{},[346,453,454],{},[38,455,456],{"code":456},"--no-verify",[346,458,459],{},"跳过 pre-commit \u002F commit-msg 钩子",[331,461,462,467],{},[346,463,464],{},[38,465,466],{"code":466},"-S",[346,468,469],{},"GPG 签名提交",[331,471,472,477],{},[346,473,474],{},[38,475,476],{"code":476},"--signoff",[346,478,479,480,483],{},"添加 ",[38,481,482],{"code":482},"Signed-off-by"," 行",[331,485,486,491],{},[346,487,488],{},[38,489,490],{"code":490},"--fixup \u003Ccommit>",[346,492,493],{},"生成 fixup 提交",[331,495,496,501],{},[346,497,498],{},[38,499,500],{"code":500},"--squash \u003Ccommit>",[346,502,503],{},"生成 squash 提交",[13,505,506],{},"示例：",[30,508,511],{"className":509,"code":510,"language":35,"meta":36},[33],"git commit -v\ngit commit --amend --no-edit\ngit commit --allow-empty -m \"ci: 触发流水线\"\ngit commit --no-verify -m \"wip: 临时提交\"\n",[38,512,510],{"__ignoreMap":36},[22,514,516],{"id":515},"_53-多行提交信息","5.3 多行提交信息",[30,518,521],{"className":519,"code":520,"language":35,"meta":36},[33],"git commit -m \"feat(auth): 添加手机号验证码登录\" \\\n           -m \"支持手机号+验证码登录，减少密码遗忘导致的用户流失。\" \\\n           -m \"Closes #42\"\n",[38,522,520],{"__ignoreMap":36},[22,524,526],{"id":525},"_54-补充提交信息","5.4 补充提交信息",[30,528,531],{"className":529,"code":530,"language":35,"meta":36},[33],"git commit --amend\n# 或\ngit commit --amend -m \"原标题\" -m \"补充的正文\"\n",[38,532,530],{"__ignoreMap":36},[99,534],{},[17,536,538],{"id":537},"六git-提交信息规范","六、Git 提交信息规范",[22,540,542],{"id":541},"_61-基本格式","6.1 基本格式",[30,544,549],{"className":545,"code":547,"language":548,"meta":36},[546],"language-text","feat(auth): 添加github快捷登录\n","text",[38,550,547],{"__ignoreMap":36},[552,553,554,561,567],"ul",{},[555,556,557,560],"li",{},[38,558,559],{"code":559},"type","：提交类型，必填",[555,562,563,566],{},[38,564,565],{"code":565},"scope","：影响范围，可选",[555,568,569,572],{},[38,570,571],{"code":571},"subject","：简短描述，必填",[22,574,576],{"id":575},"_62-常用类型","6.2 常用类型",[325,578,579,589],{},[328,580,581],{},[331,582,583,586],{},[334,584,585],{},"类型",[334,587,588],{},"含义",[341,590,591,601,611,621,631,641,651,661,671,681,691],{},[331,592,593,598],{},[346,594,595],{},[38,596,597],{"code":597},"feat",[346,599,600],{},"新功能",[331,602,603,608],{},[346,604,605],{},[38,606,607],{"code":607},"fix",[346,609,610],{},"修复 bug",[331,612,613,618],{},[346,614,615],{},[38,616,617],{"code":617},"docs",[346,619,620],{},"文档",[331,622,623,628],{},[346,624,625],{},[38,626,627],{"code":627},"style",[346,629,630],{},"格式调整，不影响逻辑",[331,632,633,638],{},[346,634,635],{},[38,636,637],{"code":637},"refactor",[346,639,640],{},"重构",[331,642,643,648],{},[346,644,645],{},[38,646,647],{"code":647},"perf",[346,649,650],{},"性能优化",[331,652,653,658],{},[346,654,655],{},[38,656,657],{"code":657},"test",[346,659,660],{},"测试相关",[331,662,663,668],{},[346,664,665],{},[38,666,667],{"code":667},"build",[346,669,670],{},"构建或依赖",[331,672,673,678],{},[346,674,675],{},[38,676,677],{"code":677},"ci",[346,679,680],{},"CI 配置",[331,682,683,688],{},[346,684,685],{},[38,686,687],{"code":687},"chore",[346,689,690],{},"杂项",[331,692,693,698],{},[346,694,695],{},[38,696,697],{"code":697},"revert",[346,699,700],{},"回滚提交",[22,702,704],{"id":703},"_63-示例","6.3 示例",[30,706,709],{"className":707,"code":708,"language":548,"meta":36},[546],"feat(auth): 添加github快捷登录\nfix(auth): 修复github授权回调已知问题\ndocs(readme): 更新使用说明\nrefactor(api): api 重构，优化\nperf(query): 优化加载性能\nchore: 升级依赖版本\n",[38,710,708],{"__ignoreMap":36},[13,712,713],{},"带正文和 issue：",[30,715,718],{"className":716,"code":717,"language":548,"meta":36},[546],"fix(api): 修复api相关问题\n\n修复站点评论区图床API回调异常\n\nCloses #42\n",[38,719,717],{"__ignoreMap":36},[552,721,722,733],{},[555,723,724,725,728,729,732],{},"破坏性变更用 ",[38,726,727],{"code":727},"!"," 或 ",[38,730,731],{"code":731},"BREAKING CHANGE:"," 标注",[555,734,735,736,739,740],{},"关联 issue 写 ",[38,737,738],{"code":738},"Closes #42","、",[38,741,742],{"code":742},"Fixes #128",[13,744,745],{},"破坏性变更：",[30,747,750],{"className":748,"code":749,"language":548,"meta":36},[546],"feat(api)!: 移除旧版登录接口\n\nBREAKING CHANGE: \u002Fapi\u002Fv1\u002Flogin 已删除，请迁移到 \u002Fapi\u002Fv2\u002Flogin。\n",[38,751,749],{"__ignoreMap":36},[99,753],{},[17,755,757],{"id":756},"七命令速查表","七、命令速查表",[325,759,760,770],{},[328,761,762],{},[331,763,764,767],{},[334,765,766],{},"操作",[334,768,769],{},"命令",[341,771,772,782,792,802,812,822,832,842,852,862,872,882,892,902,912,922,932,942,952,962,972,982,992,1002,1012,1022,1032,1042,1052],{},[331,773,774,777],{},[346,775,776],{},"查看版本",[346,778,779],{},[38,780,781],{"code":781},"git --version",[331,783,784,787],{},[346,785,786],{},"配置用户",[346,788,789],{},[38,790,791],{"code":791},"git config --global user.name \"名字\"",[331,793,794,797],{},[346,795,796],{},"配置邮箱",[346,798,799],{},[38,800,801],{"code":801},"git config --global user.email \"邮箱\"",[331,803,804,807],{},[346,805,806],{},"初始化仓库",[346,808,809],{},[38,810,811],{"code":811},"git init",[331,813,814,817],{},[346,815,816],{},"克隆仓库",[346,818,819],{},[38,820,821],{"code":821},"git clone \u003Curl>",[331,823,824,827],{},[346,825,826],{},"查看状态",[346,828,829],{},[38,830,831],{"code":831},"git status",[331,833,834,837],{},[346,835,836],{},"暂存文件",[346,838,839],{},[38,840,841],{"code":841},"git add \u003C文件>",[331,843,844,847],{},[346,845,846],{},"暂存所有",[346,848,849],{},[38,850,851],{"code":851},"git add .",[331,853,854,857],{},[346,855,856],{},"提交",[346,858,859],{},[38,860,861],{"code":861},"git commit -m \"信息\"",[331,863,864,867],{},[346,865,866],{},"查看历史",[346,868,869],{},[38,870,871],{"code":871},"git log --oneline --graph --all",[331,873,874,877],{},[346,875,876],{},"查看差异",[346,878,879],{},[38,880,881],{"code":881},"git diff",[331,883,884,887],{},[346,885,886],{},"创建分支",[346,888,889],{},[38,890,891],{"code":891},"git switch -c \u003C分支>",[331,893,894,897],{},[346,895,896],{},"切换分支",[346,898,899],{},[38,900,901],{"code":901},"git switch \u003C分支>",[331,903,904,907],{},[346,905,906],{},"合并分支",[346,908,909],{},[38,910,911],{"code":911},"git merge \u003C分支>",[331,913,914,917],{},[346,915,916],{},"删除分支",[346,918,919],{},[38,920,921],{"code":921},"git branch -d \u003C分支>",[331,923,924,927],{},[346,925,926],{},"添加远程",[346,928,929],{},[38,930,931],{"code":931},"git remote add origin \u003Curl>",[331,933,934,937],{},[346,935,936],{},"推送",[346,938,939],{},[38,940,941],{"code":941},"git push",[331,943,944,947],{},[346,945,946],{},"首次推送",[346,948,949],{},[38,950,951],{"code":951},"git push -u origin main",[331,953,954,957],{},[346,955,956],{},"拉取",[346,958,959],{},[38,960,961],{"code":961},"git pull --rebase",[331,963,964,967],{},[346,965,966],{},"获取远程",[346,968,969],{},[38,970,971],{"code":971},"git fetch",[331,973,974,977],{},[346,975,976],{},"放弃工作区修改",[346,978,979],{},[38,980,981],{"code":981},"git restore \u003C文件>",[331,983,984,987],{},[346,985,986],{},"取消暂存",[346,988,989],{},[38,990,991],{"code":991},"git restore --staged \u003C文件>",[331,993,994,997],{},[346,995,996],{},"修改最近提交",[346,998,999],{},[38,1000,1001],{"code":1001},"git commit --amend",[331,1003,1004,1007],{},[346,1005,1006],{},"回退提交",[346,1008,1009],{},[38,1010,1011],{"code":1011},"git reset --soft HEAD~1",[331,1013,1014,1017],{},[346,1015,1016],{},"撤销公共提交",[346,1018,1019],{},[38,1020,1021],{"code":1021},"git revert \u003Ccommit>",[331,1023,1024,1027],{},[346,1025,1026],{},"暂存现场",[346,1028,1029],{},[38,1030,1031],{"code":1031},"git stash",[331,1033,1034,1037],{},[346,1035,1036],{},"恢复现场",[346,1038,1039],{},[38,1040,1041],{"code":1041},"git stash pop",[331,1043,1044,1047],{},[346,1045,1046],{},"标签",[346,1048,1049],{},[38,1050,1051],{"code":1051},"git tag -a v1.0.0 -m \"版本\"",[331,1053,1054,1057],{},[346,1055,1056],{},"查看救命日志",[346,1058,1059],{},[38,1060,1061],{"code":1061},"git reflog",{"title":36,"searchDepth":1063,"depth":1063,"links":1064},4,[1065,1071,1075,1083,1089,1095,1100],{"id":19,"depth":1066,"text":20,"children":1067},2,[1068,1070],{"id":24,"depth":1069,"text":25},3,{"id":69,"depth":1069,"text":70},{"id":103,"depth":1066,"text":104,"children":1072},[1073,1074],{"id":107,"depth":1069,"text":108},{"id":126,"depth":1069,"text":127},{"id":147,"depth":1066,"text":148,"children":1076},[1077,1078,1079,1080,1081,1082],{"id":151,"depth":1069,"text":152},{"id":161,"depth":1069,"text":162},{"id":171,"depth":1069,"text":172},{"id":181,"depth":1069,"text":182},{"id":211,"depth":1069,"text":212},{"id":221,"depth":1069,"text":222},{"id":233,"depth":1066,"text":234,"children":1084},[1085,1086,1087,1088],{"id":237,"depth":1069,"text":238},{"id":247,"depth":1069,"text":248},{"id":277,"depth":1069,"text":278},{"id":296,"depth":1069,"text":297},{"id":308,"depth":1066,"text":309,"children":1090},[1091,1092,1093,1094],{"id":312,"depth":1069,"text":313},{"id":322,"depth":1069,"text":323},{"id":515,"depth":1069,"text":516},{"id":525,"depth":1069,"text":526},{"id":537,"depth":1066,"text":538,"children":1096},[1097,1098,1099],{"id":541,"depth":1069,"text":542},{"id":575,"depth":1069,"text":576},{"id":703,"depth":1069,"text":704},{"id":756,"depth":1066,"text":757},[1102,1103],"技术","开发","2026-10-04 00:25:00","记录Git常用命令与写法规范，备忘记录emmm....   供参考",false,"md","https:\u002F\u002Fr2-data.site.kr033.top\u002Fsite\u002Fpost\u002Fgit-note\u002FGit-Logo-2Color.png",{"aside":1110,"slots":1112},[1111],"toc",{},true,"\u002F2026\u002Fgit-notes",null,{"text":1117,"minutes":1118,"time":1119,"words":1120},"6 min read",5.945,356700,1189,{"title":5,"description":1105},{"loc":1114},"posts\u002F2026\u002Fgit-notes",[1125,1126,1127],"Git","规范","笔记","tech","vY5ITbSfpTplh_UXlw7dU5BGyNBe4D089GV91WaJF-4",[1131,1115],{"title":1132,"path":1133,"stem":1134,"date":1135,"type":1128,"children":-1},"站点双评论系统简记","\u002F2026\u002Fdual-comment-system","posts\u002F2026\u002Fdual-comment-system","2026-09-25 21:55:00",1791340181200]