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