[{"data":1,"prerenderedAt":5229},["ShallowReactive",2],{"tags-articles":3},[4,319,361,653,1956,4909],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"date":11,"tags":12,"body":14,"_type":313,"_id":314,"_source":315,"_file":316,"_stem":317,"_extension":318},"\u002Fhssr\u002F001","hssr",false,"","物理班","作者刘家俊的高中情愫记忆","2026-06-14",[13],"美文",{"type":15,"children":16,"toc":310},"root",[17,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285,290,295,300,305],{"type":18,"tag":19,"props":20,"children":21},"element","p",{},[22],{"type":23,"value":24},"text","也许是因为一时的冲动，我进了物理班，可能我认为物理是我比较混得过去的一科吧。",{"type":18,"tag":19,"props":26,"children":27},{},[28],{"type":23,"value":29},"然后，我的大脑开始向一种科学方法进化，物理和数学逐渐成为条件反射而不是什么技能。在乘车的时候，我会不由自主地对我的身体进行受力分析，特别是在转弯的时候，很多计算向心力的公式一下子充塞了我的大脑。看足球的时候，会自觉地通过平抛运动的计算方法结合相对运动去判断球传得是不是准确。玩篮球的时候，看着一道弧线划过，大脑会分析这个弧线的数学方程。至于语文课，根本就是用来补充晚上的睡眠不足，英语课始终是在因为疲劳过度而麻木得不知疲倦的听与写中完成的。这几乎就是训练的我的样子。",{"type":18,"tag":19,"props":31,"children":32},{},[33],{"type":23,"value":34},"这种痛苦的变化大概在开学后的两个月中完成，期间，我的学生手册上增加了许多不太光彩的记录，我从来没有想到我竟会有那么多不及格。甚至我和同桌的分数相加才能和最高分打成平手，或者我的分数是最高分的二十五分之八。母亲对我的教育也很让我难忘，我记得以前，她总是说要好好读书不然就去扫大街，现在她说如果你不好好读书将来就等着下岗吧，也许她也了解了各种洋参丸中哪一种效果最好， 不过DHA这种东西的效果还需要通过时间检验。",{"type":18,"tag":19,"props":36,"children":37},{},[38],{"type":23,"value":39},"然后，我能说我充分地适应了高三的学习环境，然后我发觉班里成员的改变\"让我欢喜让我忧\"。那么多的新面孔足以让我后悔当初的班级沙文主义让我少认识不少应该早点认识的人，那么多新的朋友或者勉强成为朋友的人让我的通讯录丰富了不少。物理班，男女生的比例大约是二点四六比一，女生的资源匮乏让整个教室不是太吵闹就是太沉闷，违反中国传统阴阳调和理论的结果我也很清楚地认识到了。反过来说，男生资源过剩形成的男生贬值的效果我也很深刻地体会到了。",{"type":18,"tag":19,"props":41,"children":42},{},[43],{"type":23,"value":44},"就在整整半个月的长吁短叹中，我认识了莹。说认识，其实早就认识了，就是同班同学嘛，不过却从来没有想到她是这样的有意思。在开年级会的时候，她因为实在找不到地方，屈尊坐在我边上。我说她屈尊，是因为我这种因为住的地方不太敏感，从而没有什么市容监督，所以一直很幸运地没有被抓的人确实没有什么能吸引她的地方。当年级组长在那里长篇大论到\"我们一直在努力\"，而老师说\"希望所有的同学都能达到分数线\"的时候，她说\"我们会做得更好\"，都是广告词。我看了看她，而她只是一种对老师的说教不屑一顾的表情，耸耸肩。我认为班级里的女生都不太可爱的想法从此消失。",{"type":18,"tag":19,"props":46,"children":47},{},[48],{"type":23,"value":49},"然后，有一次语文老师不知道出了什么问题在课堂上读了我的作文，说是写得很有新意。鬼才知道那是我早上起来发现作文没有写，在吃早餐的时候用了25分钟涂的，至今我还坚决不承认那是我真实水平的反映。下课以后，莹跑来问我那里面\"引用\"的名言是哪里看到的，谁说的，很有道理。我说如果你觉得自己够出名的话，你说什么都能在前面加上\"有位名人说过\"，如果你觉得自己不够有名至少可以这样安慰自己。她笑了，我从来没有看到那么明亮的笑容。",{"type":18,"tag":19,"props":51,"children":52},{},[53],{"type":23,"value":54},"那天随后的时间，我有了足够的证明万有引力的公式是错误的，因为虽然莹的体积与质量都不能和班主任相提并论，我却感到她的吸引力比班主任大，至少我的眼睛是这样感觉的。我很警惕这种危险的感觉，在我下决心前的一秒钟却想如果高三再不体验一下，这辈子就没有机会早恋了，那可亏大了。何况，我也未必能抓住这个机会，以我对自己的评价来说是这样。",{"type":18,"tag":19,"props":56,"children":57},{},[58],{"type":23,"value":59},"高三就是高三，只要你上了其中任何一节课，就不会有任何怀疑。不过，可以选择上课的风格。如果选择认真，我能在两节课里从老师那里知道不少需要自己归纳的东西，减少了自己摸索需要的时间与努力。如果选择抓紧时间，我能在同样的时间里完成相当数量的习题，能得到的效果和上课差不多。不过，无论怎样，作业的数量是相同的，虽然你能选择做还是不做，或者抄，但是老师也可以选择放弃你，找你去办公室，点名批评或者通知你的家长。因为老师在选择的自由度上胜过我们，愿意以身试法的并不多。",{"type":18,"tag":19,"props":61,"children":62},{},[63],{"type":23,"value":64},"我总是很认真地做作业，虽然效果相当有限。通常我会用不少的时间做题目，各种各样的，效果仍然有限。我记得雷锋说把有限的生命投入到无限的为人民服务中去，我觉得我把有限的时间投入到无限的题海战术中去。于是，我的学生手册上不再出现能让人惊讶的成绩，让人眼睛一亮的或者特别刺激神经的都没有。",{"type":18,"tag":19,"props":66,"children":67},{},[68],{"type":23,"value":69},"在这个方面，莹和我有相当的共同语言。她可能比我稍微好一点，却比我更不在乎。有时候，她会拿着一些题目来问我，不是因为我很厉害，而是因为我很耐心，耐心到用笨拙的办法艰难地完成。或者，她觉得问高手她会有自卑感，而比我不行的就没有利用价值了。而我，似乎很愿意被她打扰，有时候，我甚至会期盼她的打扰。",{"type":18,"tag":19,"props":71,"children":72},{},[73],{"type":23,"value":74},"测验在一次次地进行，而我的信心在一点点地消失。我并不是因为自己的成绩不行而不自信，只是，我觉得我像是一台旧机器，每天吞吐着数量可怕的习题，所有的感觉就在这最强烈的感觉的阴影下渐渐麻木。测验时的心理状态根本不是问题，反而，我会想高考的时候那些因为心理状态不好的人怎么过的这一学年。而我看到的绝大部分的同学都是这样，教室里的生命气息真的是气若游丝。",{"type":18,"tag":19,"props":76,"children":77},{},[78],{"type":23,"value":79},"这时候，莹就更加引人注目。在回答老师问题的时候，她的声音总是潇洒而自信，虽然不常正确。偶而对了，她会在老师转身的一刹那，抬起手竖起代表胜利的两根手指，鼓励自己；错了，她会掩着嘴，做出无心之矢的样子，老师也不会苛责。她是所有的同学中最有人缘的，像她这样的人，这似乎是很正常。",{"type":18,"tag":19,"props":81,"children":82},{},[83],{"type":23,"value":84},"但是，我不知道她为什么有那么好的心情。",{"type":18,"tag":19,"props":86,"children":87},{},[88],{"type":23,"value":89},"每天，一放学，我就会用最快的速度塞好书包，冲出教室，骑上车回家，然后做作业复习。我一直认为学校里不适合考虑问题，尤其是数学和物理，我宁可一个人。有很多人喜欢在学校里做完作业再回家，他们总是相信相互帮助的效果。我知道波的干涉除了能相互加强以外也能够相互减弱，因为测验的时候我错了。",{"type":18,"tag":19,"props":91,"children":92},{},[93],{"type":23,"value":94},"然而，当我知道莹每天做完作业回家而且她家到我家的位移相当有限以后，我也开始每天留下，不知道为什么。只有很少的几天，我和她同路，和她聊天，但是，聊天的主题不是将来的前途就是学习和考试，很少例外。不过有一天，她问我喜不喜欢梁咏琪的歌，我说听过但是那首《自由落体》里既没有加速度又没有高度或者末速度，因此不知道是不是她和我同一个星球。她笑了，很透明的笑容。",{"type":18,"tag":19,"props":96,"children":97},{},[98],{"type":23,"value":99},"说到流行音乐，可能已经是我们能享受的不多的娱乐项目了。电脑被查封或者全家陪着不看电视或者临时没收所有\"闲书\"，都不是什么稀奇的事情，而录音机因为英语学习的需要能幸存于我们手中。当我们把学校称为某某监狱，把班级称为某某劳改大队，把包括下课午休和体育课和广播操在内的所有能出教室的活动称为\"放风\". 而把所有的办公室称为刑讯室的时候，我们的这一点享受就很举足轻重了。",{"type":18,"tag":19,"props":101,"children":102},{},[103],{"type":23,"value":104},"其中考试用了两天，那是相对松弛的两天，尽管我知道那以后是可怕的。",{"type":18,"tag":19,"props":106,"children":107},{},[108],{"type":23,"value":109},"发布成绩的那天，果然。",{"type":18,"tag":19,"props":111,"children":112},{},[113],{"type":23,"value":114},"吃午饭的时候，我看见莹趴在桌上。10分钟后，我回到教室，还是这样。教室里只有我们两个人，我过去问她。她眼睛红着，说她考得不好，我说我考糊了所以我们彼此彼此。我不知道怎么安慰她，从没有知道过。我只能词不达意地说了些无关痛痒的话，还好她很领情地心情变好了。而她终于没有吃午饭。",{"type":18,"tag":19,"props":116,"children":117},{},[118],{"type":23,"value":119},"秋游就是两天以后。",{"type":18,"tag":19,"props":121,"children":122},{},[123],{"type":23,"value":124},"可能是学校知道让这些深受迫害的考得好的要庆祝，考得差的要发泄的学生在学校里发挥能量会给年纪比巴金还大的大楼造成毁灭性破坏，所以就法外施恩让我们出去疯。",{"type":18,"tag":19,"props":126,"children":127},{},[128],{"type":23,"value":129},"我们事先说好要是谁敢带课本去就让他头顶着书游街加上做\"喷气式飞机\"加上\"砸烂他的狗头\"，没有人不知趣。",{"type":18,"tag":19,"props":131,"children":132},{},[133],{"type":23,"value":134},"然而，不是没有事故。",{"type":18,"tag":19,"props":136,"children":137},{},[138],{"type":23,"value":139},"不知是他们把我弄丢了还是我把他们弄丢了，反正我从WC出来就再也没有找到他们。但是我在四处乱转的时候碰到了莹，她说她把她们弄丢了。她还说既然你也是一个人那就跟着我，我不会亏待你的。说得跟真的一样。我这样做了。",{"type":18,"tag":19,"props":141,"children":142},{},[143],{"type":23,"value":144},"然后我给她拍了一胶个人写真，用我的Nikon， 而我有了和莹的合影。",{"type":18,"tag":19,"props":146,"children":147},{},[148],{"type":23,"value":149},"集合的时候我终于再次看见弄丢我的哥们和她弄丢的姐们，我不知道如何解释会和莹在 一起。莹很从容地说她捡到了一个装备精良技术精湛的她的个人免费摄影师。",{"type":18,"tag":19,"props":151,"children":152},{},[153],{"type":23,"value":154},"从那一天以后，我不是撞机会和莹同路，而是每天。",{"type":18,"tag":19,"props":156,"children":157},{},[158],{"type":23,"value":159},"我问她，为什么她的心情总是比我好。",{"type":18,"tag":19,"props":161,"children":162},{},[163],{"type":23,"value":164},"她说，比你心情好是应该的，看我哭丧着脸好像世界末日一样，在高三更要懂得放松自 己的心情，用好的心情全力备战。",{"type":18,"tag":19,"props":166,"children":167},{},[168],{"type":23,"value":169},"我问她，将来想干什么。她说她要做吟游诗人，重新创立这个浪漫的职业，周游世界。",{"type":18,"tag":19,"props":171,"children":172},{},[173],{"type":23,"value":174},"我只想当个摄影记者，罗伯特．卡帕那样的。她说她不想看我拍的最后一张照片。",{"type":18,"tag":19,"props":176,"children":177},{},[178],{"type":23,"value":179},"我们用\"不要和化学班的讨论动量守恒\"代替了成语\"对牛弹琴\"，据说在历史班的版本是\"不要和研究两个球怎么撞的人说农民起义\"。\"不要推我\"成了\"不要对我做功\"。\"小心我把你扔出去\"成了\"小心我让你做平抛运动\"......  其中有一半是莹贡献。每个班级都会有些这样能把学科特点联系到任何东西上的高手，物理班里是莹。",{"type":18,"tag":19,"props":181,"children":182},{},[183],{"type":23,"value":184},"在我们结束解析几何部分的第二天，老师说学校有个捐助失学儿童的倡议。放学的时候，我对莹说，要是那些可怜的孩子知道高三什么样，他们宁可失学。",{"type":18,"tag":19,"props":186,"children":187},{},[188],{"type":23,"value":189},"莹笑着，认真而夸张地点了点头。",{"type":18,"tag":19,"props":191,"children":192},{},[193],{"type":23,"value":194},"我知道有很多同学去弹子房真实地演示动量守恒或者到电脑房去体会战争的残酷。我的胆子不大，怕被老师抓，只能待在家里做考卷，一份接着一份。突然我发觉，家里到处是各种各样的考卷，多得让我懊丧，我发觉这个学期已经过去了68％。考卷的总重量是11.35公斤，如果在赤道由于离地心较远会轻一点，这也是我弄错过的物理原理。",{"type":18,"tag":19,"props":196,"children":197},{},[198],{"type":23,"value":199},"同时我发现，原来高三不需要书包，每天只要带老师要讲的试卷就可以了。我带文件夹上学，被老师训了，她说不管书包多空，学生要有学生的样子。我不知道满的文件夹和空的书包里的东西有什么不同，但我知道老师很在乎我们的一举一动而且高三的老师不花时间解释道理。",{"type":18,"tag":19,"props":201,"children":202},{},[203],{"type":23,"value":204},"为了迎接3＋1考试的复习很早就开始了，整整一个月。也就是说是在圣诞节后一天开始的。我们很小规模地庆祝了一下圣诞节就投入到热火朝天的复习中去了。",{"type":18,"tag":19,"props":206,"children":207},{},[208],{"type":23,"value":209},"老师都忘了下课铃声是干什么的了，我可以理解；老师布置作业的时候忘了我们还要睡觉，我可以理解；老师对体育课后我们男生的满头大汗大发雷霆，我可以理解......我发现我对老师体谅起来，因为我还不够体谅自己。",{"type":18,"tag":19,"props":211,"children":212},{},[213],{"type":23,"value":214},"这个时候，语文老师布置的题目为《话说考试》的作文，这称为有史以来平均水平最高的作文。老师说我们很有真情实感。",{"type":18,"tag":19,"props":216,"children":217},{},[218],{"type":23,"value":219},"我想到一句诗——\"国家不幸诗家幸，赋到沧桑句便工。\"稍微改一下就很能形容这样的情况。",{"type":18,"tag":19,"props":221,"children":222},{},[223],{"type":23,"value":224},"在这样的环境里，莹和我还是经常在一起。不过，开始经常较量测验的成绩，经常一起复习。不同的局势，我们有不同方式的交流。因为我们的成绩都在上升，老师没有干涉。",{"type":18,"tag":19,"props":226,"children":227},{},[228],{"type":23,"value":229},"显然，莹不如以前那么开朗了。很少，我能看到她透明的明亮的笑容。虽然她的苦笑仍然比任何人都甜蜜，我知道她的心里有了高三的烙印。",{"type":18,"tag":19,"props":231,"children":232},{},[233],{"type":23,"value":234},"她解题的时候经常用手比划出函数图像或者左手定则和右手定则，动作舒展而优美。我总是在心里默想。她兴奋的时候或者生气的时候会拿书砸我。在这们的局势里，我不会生气了，也兴奋不起来。",{"type":18,"tag":19,"props":236,"children":237},{},[238],{"type":23,"value":239},"这样，一直到3＋1考试结束。",{"type":18,"tag":19,"props":241,"children":242},{},[243],{"type":23,"value":244},"寒假，只有有限的几天，如果除去春节不得不到处转悠的那几天和做寒假作业需要的时间。我和莹用了一天一起出去。这是我们有预谋的第一次\"约会\"。",{"type":18,"tag":19,"props":246,"children":247},{},[248],{"type":23,"value":249},"在那个时候考试的成绩还不知道，感觉总是有的。成绩都写在我们脸上。相互看了一眼然后相视而笑。",{"type":18,"tag":19,"props":251,"children":252},{},[253],{"type":23,"value":254},"莹的心情总是清楚地显示在她的一举一动中，她并不愉快。",{"type":18,"tag":19,"props":256,"children":257},{},[258],{"type":23,"value":259},"我或者她，从来没有直接对对方有过什么直接的表示。这天，她褪下她手腕上的许愿砂，送给我；我，给她我脖子上的弹坠。",{"type":18,"tag":19,"props":261,"children":262},{},[263],{"type":23,"value":264},"在\"必胜客\"，我们享用我们的午餐。看着心形的心意匹萨放在面前，视觉效果就很好。",{"type":18,"tag":19,"props":266,"children":267},{},[268],{"type":23,"value":269},"她说下个学期惨了，必须非常拼命，不然只能读高四了。",{"type":18,"tag":19,"props":271,"children":272},{},[273],{"type":23,"value":274},"我说，我也一样，差不多只能破釜沉舟了。",{"type":18,"tag":19,"props":276,"children":277},{},[278],{"type":23,"value":279},"她说，我们分兵突进，各自为战，在大学会合。",{"type":18,"tag":19,"props":281,"children":282},{},[283],{"type":23,"value":284},"我手中的餐刀自由落体。我看她，她是不得已的。我想我能理解。",{"type":18,"tag":19,"props":286,"children":287},{},[288],{"type":23,"value":289},"我说，虽然路不同，位移是一样的，可以。",{"type":18,"tag":19,"props":291,"children":292},{},[293],{"type":23,"value":294},"餐厅的背景音乐是《笨鸟先飞》，然后我注意到我面前的那块匹萨，被我消灭了很大一快。我知道，能在大学会合，已经不是加不加油的问题，而是加不加核燃料的问题。",{"type":18,"tag":19,"props":296,"children":297},{},[298],{"type":23,"value":299},"下午，我们去看了日本电影《情书》，这是一个和物理无关的一天的最后议程。",{"type":18,"tag":19,"props":301,"children":302},{},[303],{"type":23,"value":304},"我知道，现在是高三，我们在物理班。",{"type":18,"tag":19,"props":306,"children":307},{},[308],{"type":23,"value":309},"事实就是这么简单。",{"title":8,"searchDepth":311,"depth":311,"links":312},2,[],"markdown","content:hssr:001.md","content","hssr\u002F001.md","hssr\u002F001","md",{"_path":320,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":321,"description":322,"date":11,"tags":323,"body":324,"_type":313,"_id":358,"_source":315,"_file":359,"_stem":360,"_extension":318},"\u002Fhssr\u002F002","我和你牵手在明天","高考满分作文里的情感诉说",[13],{"type":15,"children":325,"toc":356},[326,331,336,341,346,351],{"type":18,"tag":19,"props":327,"children":328},{},[329],{"type":23,"value":330},"当我拿着你委托你姐姐送来啲那封信时, 我就决定:我要用村头那片荷塘里最美啲荷叶包上你我啲情愫, 系上一根红丝线, 暂存在我们心间, 等到一个合适啲明天, 我们再共同将它开启。?",{"type":18,"tag":19,"props":332,"children":333},{},[334],{"type":23,"value":335},"你一定要问为什么。那么, 请答应我告诉你:在这个什么都能速成速决啲世界里, 我实在不敢轻言爱, 我们没有那么多精力也没有资本去实现那些沉甸甸啲诺言, 村里人把我们送出去, 不是没有期待啲, 他们在看着我们明天将要带回一个怎样啲新天地。?\n我越来越感觉到时间啲飞逝, 这青春, 仿佛是一块湿淋淋啲毛巾, 轻轻一拧, 就所剩无几了。假如只是沉浸在两个人啲世界里, 势必将错过许多更有价值啲东西, 何况, “人必生活着, 爱才有所附丽”。?其实, 并非我对你啲情意熟视无睹, 还记得那个冬天, 飘雪啲小巷里, 你为我撑起一把油纸伞, 那掩嘴啲笑像个腼腆啲小男孩, 如此真实又天真啲笑脸怎能让我忘记？?",{"type":18,"tag":19,"props":337,"children":338},{},[339],{"type":23,"value":340},"是去年啲暑假吧, 好好啲就又托了你姐姐来我这里取包裹, 小姐姐说你刚理了个新发型, 不好意思让我看见, 想到你那局促不安啲样子, 我偷偷地笑着。?",{"type":18,"tag":19,"props":342,"children":343},{},[344],{"type":23,"value":345},"毕业典礼啲舞会上, 你拉着我啲手, 要我一定要等你, 一定要保护好自己, 一定要……这些我都一一答应你。我对你啲许诺是在“明天”, 因为“明天”它不像未来那么过于遥远和空洞, 它就守候在你啲门外。看多了那些泡沫样啲爱情以后, 我还是更欣赏舒婷啲诗中所树立啲曾影响过两代人啲情感坐标:“风扬起纷飞啲长发, 我是你骤雨中啲百合。”还是更喜欢《诗经》中所传递啲那种含蓄深沉啲情感氛围:“青青子衿, 悠悠我心, 但为君故, 沉吟至今。”?",{"type":18,"tag":19,"props":347,"children":348},{},[349],{"type":23,"value":350},"你寄回啲照片, 我都好好地收藏着, 湛蓝啲天空下, 你身着蓝色军装, 站在飞机旁, 挺拔啲身躯更增添了几分英武。你说你很快就要进行试飞演练了。我在异地默默地替你兴奋, 也祝愿你能飞得更高更远。这祝福里饱含着我浓浓啲爱, 更寄托着我终生啲依恋。?\n请不要责怪我。把爱留给明天, 只是不愿看它如夜空中盛开啲烟火在最绚丽啲一刻瞬息零落, 而后只能用这转瞬即逝啲华丽来纪念我们得不到也不敢求啲永恒。?",{"type":18,"tag":19,"props":352,"children":353},{},[354],{"type":23,"value":355},"把爱留给明天, 是为了和你走得更远, 等到把风景都看透, 我要你陪我看细水长流。",{"title":8,"searchDepth":311,"depth":311,"links":357},[],"content:hssr:002.md","hssr\u002F002.md","hssr\u002F002",{"_path":362,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":363,"description":364,"date":11,"tags":365,"body":367,"_type":313,"_id":650,"_source":315,"_file":651,"_stem":652,"_extension":318},"\u002Fhssr\u002F003","寒战：宏观格局与未来预估","电影《寒战》系列的宏观背景与未来故事预估",[366],"电影",{"type":15,"children":368,"toc":637},[369,378,383,388,395,400,405,448,454,459,466,471,494,500,505,515,521,533,538,544,549,572,578,596,614,620,632],{"type":18,"tag":370,"props":371,"children":372},"blockquote",{},[373],{"type":18,"tag":19,"props":374,"children":375},{},[376],{"type":23,"value":377},"系列电影《寒战》从宏观层面看，讲它讲述了一个怎样的故事？这个故事有着怎样的现实背景？并对未来未上映的故事做一个大概的预估？",{"type":18,"tag":19,"props":379,"children":380},{},[381],{"type":23,"value":382},"《寒战》系列电影在华语电影中具有里程碑式的意义，它将传统的港产警匪片从“警匪枪战”的肉搏，拔高到了“高层建制博弈与政治权谋”的宏观层面。",{"type":18,"tag":19,"props":384,"children":385},{},[386],{"type":23,"value":387},"以下从故事核心、现实背景以及对新续作（前传）的预估三个维度，为你全面拆解《寒战》的宏观格局：",{"type":18,"tag":389,"props":390,"children":392},"h2",{"id":391},"一-宏观层面寒战讲述了一个怎样的故事",[393],{"type":23,"value":394},"一、 宏观层面：《寒战》讲述了一个怎样的故事？",{"type":18,"tag":19,"props":396,"children":397},{},[398],{"type":23,"value":399},"从宏观上看，《寒战》并不是一个简单的“抓内鬼”或“警察抓小偷”的故事，它讲述的是“香港回归后，在复杂的政治权力洗牌期，关于‘法治’底线与‘人治’野心、本土建制与境外隐秘势力之间博弈的政治寓言”。",{"type":18,"tag":19,"props":401,"children":402},{},[403],{"type":23,"value":404},"我们可以把这个宏观故事拆解为三个递进的层次：",{"type":18,"tag":406,"props":407,"children":408},"ul",{},[409,428,438],{"type":18,"tag":410,"props":411,"children":412},"li",{},[413,419,421,426],{"type":18,"tag":414,"props":415,"children":416},"strong",{},[417],{"type":23,"value":418},"第一层：警队内部的“路线之争”",{"type":23,"value":420},"\n第一部表面上是刘杰辉（郭富城饰，管理派、文官代表）与李文彬（梁家辉饰，行动派、武官代表）的夺权。宏观上，这隐喻了现代科层制中“制度、程序、财政透明”",{"type":18,"tag":414,"props":422,"children":423},{},[424],{"type":23,"value":425},"（刘杰辉代表的现代管理思维）与",{"type":23,"value":427},"“江湖道义、前线威信、特事特办”（李文彬代表的传统鹰派思维）的冲突。",{"type":18,"tag":410,"props":429,"children":430},{},[431,436],{"type":18,"tag":414,"props":432,"children":433},{},[434],{"type":23,"value":435},"第二层：特区高层的“宪制危机”",{"type":23,"value":437},"\n到了第二部，格局迅速放大。冲锋车失踪案的背后，不再是几个警员的贪腐，而是以落马的前警务处长蔡元祺（张国柱饰）、律政司司长黎永廉（李子雄饰）为首的“影子内阁”。他们企图通过操控警队高层、甚至勾结立法会议员，来架空未来的特首及整个保安局。故事变成了“体制内的健康力量如何对抗企图颠覆宪制、实行寡头政治的野心家”。",{"type":18,"tag":410,"props":439,"children":440},{},[441,446],{"type":18,"tag":414,"props":442,"children":443},{},[444],{"type":23,"value":445},"第三层：跨时代的“地缘政治宿命”",{"type":23,"value":447},"\n结合最新披露的续作设定，整个《寒战》的核心风暴其实源于历史的遗留问题。那些隐藏在暗处、能动用军用卫星和数亿资金的幕后黑手，其根源可以追溯到回归前夕的各方角力。它讲述了香港在历史转折期，如何沦为各方政治、经济、间谍势力角逐的“战场”。",{"type":18,"tag":389,"props":449,"children":451},{"id":450},"二-这个故事有着怎样的现实背景",[452],{"type":23,"value":453},"二、 这个故事有着怎样的现实背景？",{"type":18,"tag":19,"props":455,"children":456},{},[457],{"type":23,"value":458},"《寒战》之所以能让观众感受到强烈的真实感，是因为它精准地切中了香港公务员体制的独特性以及特殊的历史转型背景：",{"type":18,"tag":460,"props":461,"children":463},"h3",{"id":462},"_1-香港公务员系统的管理派与技术派之争",[464],{"type":23,"value":465},"1. 香港公务员系统的“管理派”与“技术派”之争",{"type":18,"tag":19,"props":467,"children":468},{},[469],{"type":23,"value":470},"在香港的政治生态中，高级官员往往分为两大出身：",{"type":18,"tag":406,"props":472,"children":473},{},[474,484],{"type":18,"tag":410,"props":475,"children":476},{},[477,482],{"type":18,"tag":414,"props":478,"children":479},{},[480],{"type":23,"value":481},"政务官（AO，Administrative Officer）：",{"type":23,"value":483}," 即“管理派”。他们通过严格的考核录取，在各个政府部门轮流任职，擅长财务预算、危机公关和法治程序（电影中的刘杰辉便是典型，年纪轻轻、极具文官精英气质）。",{"type":18,"tag":410,"props":485,"children":486},{},[487,492],{"type":18,"tag":414,"props":488,"children":489},{},[490],{"type":23,"value":491},"专才\u002F前线晋升：",{"type":23,"value":493}," 即“技术派”。他们从基层（如普通警员、刑警）一脚一个脚印干上来，代表了部门的专业技术核心和兄弟情谊（电影中的李文彬，从前线死人堆里爬出来，深得基层警员的人心）。\n现实中，这两种路线在公共治理中经常发生摩擦，《寒战》将这种体制内的张力戏剧化地放大到了极致。",{"type":18,"tag":460,"props":495,"children":497},{"id":496},"_2-港英时期的政治部sb解散与权力真空",[498],{"type":23,"value":499},"2. 港英时期的“政治部（SB）”解散与权力真空",{"type":18,"tag":19,"props":501,"children":502},{},[503],{"type":23,"value":504},"这是电影最大的历史抓手。1995年香港回归前夕，隶属于英国军情五处的“香港警察队政治部”正式解散，大量绝密档案被销毁或运回英国，许多政治部成员、华籍英兵以及警队高层精英被安排移民海外（或改头换面）。",{"type":18,"tag":19,"props":506,"children":507},{},[508,513],{"type":18,"tag":414,"props":509,"children":510},{},[511],{"type":23,"value":512},"现实投射：",{"type":23,"value":514}," 电影第一部、第二部中那些“早已除名、从南非潜回、拥有军方背景的死士”（如杨祐宁饰演的何国正），其原型就是当年因政治部解散、特殊历史原因被警队“放弃”或隐匿的边缘功臣。这群“幽灵”的怨恨与被利用，构成了《寒战》悲剧的底色。",{"type":18,"tag":389,"props":516,"children":518},{"id":517},"三-对未来故事续作前传的大概预估",[519],{"type":23,"value":520},"三、 对未来故事（续作\u002F前传）的大概预估",{"type":18,"tag":19,"props":522,"children":523},{},[524,526,531],{"type":23,"value":525},"《寒战2》在2016年留下了巨大的悬念（李家俊在医院睁眼、蔡元祺逃往海外、黎永廉的阴谋尚未完全清算）。原本观众在等待《寒战3》，但主创团队采取了更宏大的叙事策略——",{"type":18,"tag":414,"props":527,"children":528},{},[529],{"type":23,"value":530},"以连拍方式打造《寒战1994》与《寒战1995》两部前传，并以此彻底补完整个系列的时空闭环",{"type":23,"value":532},"。",{"type":18,"tag":19,"props":534,"children":535},{},[536],{"type":23,"value":537},"根据最新的剧情和制作动向，我们可以对未来的故事做出以下三个维度的精准预估：",{"type":18,"tag":460,"props":539,"children":541},{"id":540},"_1-时空双线交织揭开冰山之下的根源",[542],{"type":23,"value":543},"1. 时空双线交织：揭开“冰山之下的根源”",{"type":18,"tag":19,"props":545,"children":546},{},[547],{"type":23,"value":548},"未来的故事并不仅仅满足于讲过去。电影将采用双时空结构：",{"type":18,"tag":406,"props":550,"children":551},{},[552,562],{"type":18,"tag":410,"props":553,"children":554},{},[555,560],{"type":18,"tag":414,"props":556,"children":557},{},[558],{"type":23,"value":559},"1994年时空（吴彦祖、刘俊谦、吴慷仁、吴彦祖等主演）：",{"type":23,"value":561}," 聚焦回归前夕。以一宗影射现实（如张子强案、华懋\u002F何东家族）的巨额富豪绑架案为导火索，展现英国军情六处（MI6）、旧英资财阀（潘氏家族）、香港警队（年轻的蔡元祺与李文彬）以及黑帮“老丸”的四方血腥博弈。",{"type":18,"tag":410,"props":563,"children":564},{},[565,570],{"type":18,"tag":414,"props":566,"children":567},{},[568],{"type":23,"value":569},"2017年时空（郭富城、梁家辉、周润发、古天乐等原班人马）：",{"type":23,"value":571}," 承接《寒战2》。在候任特首叶舜廷（古天乐饰）上任前夕，前副处长李文彬离奇失踪，刘杰辉与大律师简奥伟通过追查一份尘封的“1994年绝密档案”，发现当下的宪制危机正是23年前那场密谋的延续。",{"type":18,"tag":460,"props":573,"children":575},{"id":574},"_2-人物宿命的对调与黑白灰度的深化",[576],{"type":23,"value":577},"2. 人物宿命的对调与黑白灰度的深化",{"type":18,"tag":19,"props":579,"children":580},{},[581,583,588,590,595],{"type":23,"value":582},"前传将极大地丰富《寒战1、2》中各核心人物的动机，尤其是",{"type":18,"tag":414,"props":584,"children":585},{},[586],{"type":23,"value":587},"蔡元祺",{"type":23,"value":589},"与",{"type":18,"tag":414,"props":591,"children":592},{},[593],{"type":23,"value":594},"李文彬",{"type":23,"value":532},{"type":18,"tag":406,"props":597,"children":598},{},[599,604,609],{"type":18,"tag":410,"props":600,"children":601},{},[602],{"type":23,"value":603},"年轻时的蔡元祺（吴彦祖饰）心狠手辣、深谋远虑，他为了上位，在1994年选择充当英方在警队的代理人。",{"type":18,"tag":410,"props":605,"children":606},{},[607],{"type":23,"value":608},"年轻时的李文彬（刘俊谦饰）则满腔热血、崇尚理想。但在这场政治风暴中，他将经历父亲李树堂（元彪饰）所说的“黑白之间，你中有我”的洗礼，为了保护线人和兄弟，不得不做出妥协。",{"type":18,"tag":410,"props":610,"children":611},{},[612],{"type":23,"value":613},"观众将会看到，第一、二部中看似大反派的蔡元祺，以及被迫黑化的李文彬，其性格和命运在1994年的那场大雨中就已经被注定。",{"type":18,"tag":460,"props":615,"children":617},{"id":616},"_3-格局升级从警队内斗到地缘资本与情报战",[618],{"type":23,"value":619},"3. 格局升级：从“警队内斗”到“地缘资本与情报战”",{"type":18,"tag":19,"props":621,"children":622},{},[623,625,630],{"type":23,"value":624},"未来的续作（尤其是《寒战1994\u002F1995》）将彻底摆脱传统香港警匪片的街头枪战。随着吴慷仁饰演的掌握香港经济命脉的富豪家族继承人、以及英国内阁大臣、军情六处高官等角色的加入，电影的对决将升级为“地缘政治利益的撤退与留守”",{"type":18,"tag":414,"props":626,"children":627},{},[628],{"type":23,"value":629},"、",{"type":23,"value":631},"“资本运作对政治席位的操控”。",{"type":18,"tag":19,"props":633,"children":634},{},[635],{"type":23,"value":636},"这使得《寒战》系列最终不仅是一部爽片，更成为一部跨越20多年、记录时代更迭的“香港现代政治启示录”。",{"title":8,"searchDepth":311,"depth":311,"links":638},[639,640,645],{"id":391,"depth":311,"text":394},{"id":450,"depth":311,"text":453,"children":641},[642,644],{"id":462,"depth":643,"text":465},3,{"id":496,"depth":643,"text":499},{"id":517,"depth":311,"text":520,"children":646},[647,648,649],{"id":540,"depth":643,"text":543},{"id":574,"depth":643,"text":577},{"id":616,"depth":643,"text":619},"content:hssr:003.md","hssr\u002F003.md","hssr\u002F003",{"_path":654,"_dir":655,"_draft":7,"_partial":7,"_locale":8,"title":656,"description":657,"date":11,"tags":658,"body":660,"_type":313,"_id":1953,"_source":315,"_file":1954,"_stem":1955,"_extension":318},"\u002Fit\u002F001","it","Claude Code 全局配置文档","配置 Claude Code 全局配置文档 ~\u002Fclaude\u002FCLAUDE.md",[659],"Claude Code",{"type":15,"children":661,"toc":1930},[662,668,673,726,736,742,835,841,847,900,906,947,953,978,984,1012,1018,1048,1054,1060,1136,1142,1185,1191,1197,1218,1361,1367,1467,1473,1482,1663,1669,1849,1855,1891,1897],{"type":18,"tag":389,"props":663,"children":665},{"id":664},"一身份与工作上下文",[666],{"type":23,"value":667},"一、身份与工作上下文",{"type":18,"tag":19,"props":669,"children":670},{},[671],{"type":23,"value":672},"我是一名以前端技术栈为核心的全栈开发者，工作内容涵盖：",{"type":18,"tag":406,"props":674,"children":675},{},[676,686,696,706,716],{"type":18,"tag":410,"props":677,"children":678},{},[679,684],{"type":18,"tag":414,"props":680,"children":681},{},[682],{"type":23,"value":683},"前端",{"type":23,"value":685},"：HTML \u002F CSS \u002F JavaScript \u002F TypeScript，主框架为 Vue 3（Composition API），少量 React",{"type":18,"tag":410,"props":687,"children":688},{},[689,694],{"type":18,"tag":414,"props":690,"children":691},{},[692],{"type":23,"value":693},"跨端开发",{"type":23,"value":695},"：UniApp、微信小程序（原生）",{"type":18,"tag":410,"props":697,"children":698},{},[699,704],{"type":18,"tag":414,"props":700,"children":701},{},[702],{"type":23,"value":703},"后端服务",{"type":23,"value":705},"：Node.js，主要框架为 Express.js \u002F Koa.js \u002F NestJS",{"type":18,"tag":410,"props":707,"children":708},{},[709,714],{"type":18,"tag":414,"props":710,"children":711},{},[712],{"type":23,"value":713},"数据库",{"type":23,"value":715},"：MySQL（关系型）、MongoDB（文档型）",{"type":18,"tag":410,"props":717,"children":718},{},[719,724],{"type":18,"tag":414,"props":720,"children":721},{},[722],{"type":23,"value":723},"产品设计",{"type":23,"value":725},"：Figma UI\u002FUX 交互设计、图片素材处理（压缩 \u002F 裁切 \u002F 格式转换）、设计规范维护",{"type":18,"tag":19,"props":727,"children":728},{},[729,734],{"type":18,"tag":414,"props":730,"children":731},{},[732],{"type":23,"value":733},"默认语言",{"type":23,"value":735},"：中文交流，代码注释可视情况使用中文或英文",{"type":18,"tag":389,"props":737,"children":739},{"id":738},"二核心行为准则non-negotiable",[740],{"type":23,"value":741},"二、核心行为准则（NON-NEGOTIABLE）",{"type":18,"tag":743,"props":744,"children":745},"ol",{},[746,756,766,785,795,805,815,825],{"type":18,"tag":410,"props":747,"children":748},{},[749,754],{"type":18,"tag":414,"props":750,"children":751},{},[752],{"type":23,"value":753},"优先阅读现有代码",{"type":23,"value":755},"：修改前必须先理解现有代码结构和风格，不随意引入新的依赖或模式",{"type":18,"tag":410,"props":757,"children":758},{},[759,764],{"type":18,"tag":414,"props":760,"children":761},{},[762],{"type":23,"value":763},"最小化改动",{"type":23,"value":765},"：只修改与任务直接相关的部分，不做\"顺手\"重构",{"type":18,"tag":410,"props":767,"children":768},{},[769,774,776,783],{"type":18,"tag":414,"props":770,"children":771},{},[772],{"type":23,"value":773},"类型安全优先",{"type":23,"value":775},"：TypeScript 项目中，禁止使用 ",{"type":18,"tag":777,"props":778,"children":780},"code",{"className":779},[],[781],{"type":23,"value":782},"any",{"type":23,"value":784},"，必须给出明确类型定义",{"type":18,"tag":410,"props":786,"children":787},{},[788,793],{"type":18,"tag":414,"props":789,"children":790},{},[791],{"type":23,"value":792},"不自作主张删除代码",{"type":23,"value":794},"：有疑问时注释掉而非直接删除，并说明原因",{"type":18,"tag":410,"props":796,"children":797},{},[798,803],{"type":18,"tag":414,"props":799,"children":800},{},[801],{"type":23,"value":802},"执行破坏性操作前必须确认",{"type":23,"value":804},"：数据库写入 \u002F 删除、覆盖文件、生产环境操作，均须先向我确认",{"type":18,"tag":410,"props":806,"children":807},{},[808,813],{"type":18,"tag":414,"props":809,"children":810},{},[811],{"type":23,"value":812},"遇到不确定的问题，先说明再行动",{"type":23,"value":814},"：不要静默地做出可能有副作用的假设",{"type":18,"tag":410,"props":816,"children":817},{},[818,823],{"type":18,"tag":414,"props":819,"children":820},{},[821],{"type":23,"value":822},"验证驱动",{"type":23,"value":824},"：在证明功能正确之前，不标记任务完成。时刻自问：\"资深工程师会认可这个方案吗？\"",{"type":18,"tag":410,"props":826,"children":827},{},[828,833],{"type":18,"tag":414,"props":829,"children":830},{},[831],{"type":23,"value":832},"设计一致性",{"type":23,"value":834},"：代码还原设计稿时，像素级对齐不是可选而是默认。色彩、间距、字体必须与设计令牌（Design Token）一致",{"type":18,"tag":389,"props":836,"children":838},{"id":837},"三工作流规范workflow",[839],{"type":23,"value":840},"三、工作流规范（Workflow）",{"type":18,"tag":460,"props":842,"children":844},{"id":843},"_31-计划先行plan-first",[845],{"type":23,"value":846},"3.1 计划先行（Plan First）",{"type":18,"tag":406,"props":848,"children":849},{},[850,862,867,872,877,890],{"type":18,"tag":410,"props":851,"children":852},{},[853,855,860],{"type":23,"value":854},"涉及 3 步以上或架构决策的任务，",{"type":18,"tag":414,"props":856,"children":857},{},[858],{"type":23,"value":859},"必须先写 PLAN.md",{"type":23,"value":861}," 再编码",{"type":18,"tag":410,"props":863,"children":864},{},[865],{"type":23,"value":866},"前端任务需包含：组件拆分图、状态管理方案、API 依赖列表",{"type":18,"tag":410,"props":868,"children":869},{},[870],{"type":23,"value":871},"后端任务需包含：接口定义（OpenAPI\u002FTypeScript 类型）、数据库变更（ER 图\u002F迁移脚本）、权限校验点",{"type":18,"tag":410,"props":873,"children":874},{},[875],{"type":23,"value":876},"设计相关任务需包含：Figma 节点路径、资源导出规格、响应式断点策略",{"type":18,"tag":410,"props":878,"children":879},{},[880,882,888],{"type":23,"value":881},"按步骤顺序实现，完成后用 ",{"type":18,"tag":777,"props":883,"children":885},{"className":884},[],[886],{"type":23,"value":887},"[x]",{"type":23,"value":889}," 标记",{"type":18,"tag":410,"props":891,"children":892},{},[893,898],{"type":18,"tag":414,"props":894,"children":895},{},[896],{"type":23,"value":897},"计划服从现实",{"type":23,"value":899},"：发现计划与代码实际不符时，优先尊重现实；若计划明显错误，自行修正后继续",{"type":18,"tag":460,"props":901,"children":903},{"id":902},"_32-测试驱动开发tdd-后端优先",[904],{"type":23,"value":905},"3.2 测试驱动开发（TDD）— 后端优先",{"type":18,"tag":406,"props":907,"children":908},{},[909,942],{"type":18,"tag":410,"props":910,"children":911},{},[912,914],{"type":23,"value":913},"后端接口（Nest\u002FExpress）必须遵循 TDD：\n",{"type":18,"tag":743,"props":915,"children":916},{},[917,922,927,937],{"type":18,"tag":410,"props":918,"children":919},{},[920],{"type":23,"value":921},"先写测试（单元\u002F集成），确认失败（红）",{"type":18,"tag":410,"props":923,"children":924},{},[925],{"type":23,"value":926},"确认测试逻辑正确后，立即提交",{"type":18,"tag":410,"props":928,"children":929},{},[930,932],{"type":23,"value":931},"再写实现使测试通过（绿），",{"type":18,"tag":414,"props":933,"children":934},{},[935],{"type":23,"value":936},"实现过程中不得修改测试",{"type":18,"tag":410,"props":938,"children":939},{},[940],{"type":23,"value":941},"全部测试通过后，进行重构",{"type":18,"tag":410,"props":943,"children":944},{},[945],{"type":23,"value":946},"前端组件测试：关键交互组件（表单、弹窗、支付）必须写 Cypress\u002FPlaywright E2E 或 Vitest 单元测试",{"type":18,"tag":460,"props":948,"children":950},{"id":949},"_33-自主-bug-修复",[951],{"type":23,"value":952},"3.3 自主 Bug 修复",{"type":18,"tag":406,"props":954,"children":955},{},[956,968,973],{"type":18,"tag":410,"props":957,"children":958},{},[959,961,966],{"type":23,"value":960},"收到 Bug 报告后，",{"type":18,"tag":414,"props":962,"children":963},{},[964],{"type":23,"value":965},"直接调查并修复",{"type":23,"value":967},"，避免反复询问用户细节，减少上下文切换成本",{"type":18,"tag":410,"props":969,"children":970},{},[971],{"type":23,"value":972},"前端 Bug：先检查控制台报错、网络请求、状态流，再定位组件",{"type":18,"tag":410,"props":974,"children":975},{},[976],{"type":23,"value":977},"后端 Bug：先检查日志、数据库连接、接口入参，再定位服务层",{"type":18,"tag":460,"props":979,"children":981},{"id":980},"_34-ci-纪律",[982],{"type":23,"value":983},"3.4 CI 纪律",{"type":18,"tag":406,"props":985,"children":986},{},[987,997,1002,1007],{"type":18,"tag":410,"props":988,"children":989},{},[990,995],{"type":18,"tag":414,"props":991,"children":992},{},[993],{"type":23,"value":994},"CI 失败即最高优先级",{"type":23,"value":996},"：无论当前进行什么任务，立即暂停并修复 CI",{"type":18,"tag":410,"props":998,"children":999},{},[1000],{"type":23,"value":1001},"前端 CI 通常包含：Lint（ESLint\u002FPrettier）、类型检查（tsc --noEmit）、单元测试（Vitest）、构建（vite build）",{"type":18,"tag":410,"props":1003,"children":1004},{},[1005],{"type":23,"value":1006},"后端 CI 通常包含：Lint、测试、数据库迁移验证、Docker 构建",{"type":18,"tag":410,"props":1008,"children":1009},{},[1010],{"type":23,"value":1011},"修复后确认所有 CI 检查通过，再继续原任务",{"type":18,"tag":460,"props":1013,"children":1015},{"id":1014},"_35-设计协作流程",[1016],{"type":23,"value":1017},"3.5 设计协作流程",{"type":18,"tag":406,"props":1019,"children":1020},{},[1021,1033,1038,1043],{"type":18,"tag":410,"props":1022,"children":1023},{},[1024,1026,1031],{"type":23,"value":1025},"从 Figma 开发时，",{"type":18,"tag":414,"props":1027,"children":1028},{},[1029],{"type":23,"value":1030},"优先使用 Figma Dev Mode 的 CSS 代码片段",{"type":23,"value":1032},"，但需根据项目设计令牌调整",{"type":18,"tag":410,"props":1034,"children":1035},{},[1036],{"type":23,"value":1037},"导出图片资源时，优先使用 WebP\u002FAVIF 格式，提供 1x\u002F2x 多倍图",{"type":18,"tag":410,"props":1039,"children":1040},{},[1041],{"type":23,"value":1042},"设计稿中的图标必须使用项目统一的图标库（如 Iconify\u002F自定义 SVG），禁止直接导出 Figma 的 SVG（可能含冗余路径）",{"type":18,"tag":410,"props":1044,"children":1045},{},[1046],{"type":23,"value":1047},"响应式实现必须与 Figma 的断点标注一致（常见：768px、1024px、1440px）",{"type":18,"tag":389,"props":1049,"children":1051},{"id":1050},"四技术规范tech-stack",[1052],{"type":23,"value":1053},"四、技术规范（Tech Stack）",{"type":18,"tag":460,"props":1055,"children":1057},{"id":1056},"_41-前端通用规范",[1058],{"type":23,"value":1059},"4.1 前端通用规范",{"type":18,"tag":406,"props":1061,"children":1062},{},[1063,1068,1073,1085,1090,1111,1116,1121,1126,1131],{"type":18,"tag":410,"props":1064,"children":1065},{},[1066],{"type":23,"value":1067},"组件文件使用 PascalCase（MyComponent.vue）",{"type":18,"tag":410,"props":1069,"children":1070},{},[1071],{"type":23,"value":1072},"工具函数文件使用 camelCase（formatDate.ts）",{"type":18,"tag":410,"props":1074,"children":1075},{},[1076,1078,1083],{"type":23,"value":1077},"组件props、事件必须编写TS类型约束，杜绝",{"type":18,"tag":777,"props":1079,"children":1081},{"className":1080},[],[1082],{"type":23,"value":782},{"type":23,"value":1084},"滥用",{"type":18,"tag":410,"props":1086,"children":1087},{},[1088],{"type":23,"value":1089},"优先使用组合式API \u002F Hooks，禁止混用老旧写法",{"type":18,"tag":410,"props":1091,"children":1092},{},[1093,1095,1101,1103,1109],{"type":23,"value":1094},"优先使用 ",{"type":18,"tag":777,"props":1096,"children":1098},{"className":1097},[],[1099],{"type":23,"value":1100},"interface",{"type":23,"value":1102}," 定义对象形状，",{"type":18,"tag":777,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":23,"value":1108},"type",{"type":23,"value":1110}," 用于联合类型\u002F工具类型",{"type":18,"tag":410,"props":1112,"children":1113},{},[1114],{"type":23,"value":1115},"CSS 类名使用 kebab-case",{"type":18,"tag":410,"props":1117,"children":1118},{},[1119],{"type":23,"value":1120},"严格按照 Figma 设计稿，CSS 尽量实现像素级对齐，元素间距、色值、字体大小、行高、圆角、阴影必须与设计稿一致（允许 ±1px 误差）",{"type":18,"tag":410,"props":1122,"children":1123},{},[1124],{"type":23,"value":1125},"优先使用 CSS 变量管理主题色和间距",{"type":18,"tag":410,"props":1127,"children":1128},{},[1129],{"type":23,"value":1130},"图片资源：WebP 优先，SVG 用于图标",{"type":18,"tag":410,"props":1132,"children":1133},{},[1134],{"type":23,"value":1135},"禁止内联样式（动态样式除外）",{"type":18,"tag":460,"props":1137,"children":1139},{"id":1138},"_42-nodejs-后端规范",[1140],{"type":23,"value":1141},"4.2 Node.js 后端规范",{"type":18,"tag":406,"props":1143,"children":1144},{},[1145,1150,1155,1160,1165,1170,1175,1180],{"type":18,"tag":410,"props":1146,"children":1147},{},[1148],{"type":23,"value":1149},"统一使用 async\u002Fawait，禁止回调地狱",{"type":18,"tag":410,"props":1151,"children":1152},{},[1153],{"type":23,"value":1154},"所有路由必须有错误处理中间件兜底",{"type":18,"tag":410,"props":1156,"children":1157},{},[1158],{"type":23,"value":1159},"环境变量通过 .env 管理，禁止硬编码敏感信息",{"type":18,"tag":410,"props":1161,"children":1162},{},[1163],{"type":23,"value":1164},"接口返回统一格式：{ code, data, message }",{"type":18,"tag":410,"props":1166,"children":1167},{},[1168],{"type":23,"value":1169},"接口敏感数据（密码、隐私信息）返回前端前自动脱敏处理",{"type":18,"tag":410,"props":1171,"children":1172},{},[1173],{"type":23,"value":1174},"RESTful 方法语义化：GET 查询、POST 创建、PUT 全量更新、PATCH 部分更新、DELETE 删除",{"type":18,"tag":410,"props":1176,"children":1177},{},[1178],{"type":23,"value":1179},"HTTP 状态码准确：200 OK、201 Created、204 No Content、400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found、409 Conflict、500 Internal Error",{"type":18,"tag":410,"props":1181,"children":1182},{},[1183],{"type":23,"value":1184},"日志：使用 winston 或 pino，区分 info \u002F warn \u002F error 级别",{"type":18,"tag":389,"props":1186,"children":1188},{"id":1187},"五-git-操作规范",[1189],{"type":23,"value":1190},"五、 Git 操作规范",{"type":18,"tag":460,"props":1192,"children":1194},{"id":1193},"_51-提交前检查清单",[1195],{"type":23,"value":1196},"5.1 提交前检查清单",{"type":18,"tag":19,"props":1198,"children":1199},{},[1200,1202,1208,1210,1216],{"type":23,"value":1201},"执行 ",{"type":18,"tag":777,"props":1203,"children":1205},{"className":1204},[],[1206],{"type":23,"value":1207},"git commit",{"type":23,"value":1209}," \u002F ",{"type":18,"tag":777,"props":1211,"children":1213},{"className":1212},[],[1214],{"type":23,"value":1215},"git push",{"type":23,"value":1217}," \u002F PR 创建前，必须完成：",{"type":18,"tag":743,"props":1219,"children":1220},{},[1221,1288,1334],{"type":18,"tag":410,"props":1222,"children":1223},{},[1224,1229,1231],{"type":18,"tag":414,"props":1225,"children":1226},{},[1227],{"type":23,"value":1228},"前端额外检查",{"type":23,"value":1230},"：\n",{"type":18,"tag":406,"props":1232,"children":1233},{},[1234,1245,1264,1275],{"type":18,"tag":410,"props":1235,"children":1236},{},[1237,1243],{"type":18,"tag":777,"props":1238,"children":1240},{"className":1239},[],[1241],{"type":23,"value":1242},"pnpm lint",{"type":23,"value":1244},"（ESLint + Prettier）通过",{"type":18,"tag":410,"props":1246,"children":1247},{},[1248,1254,1256,1262],{"type":18,"tag":777,"props":1249,"children":1251},{"className":1250},[],[1252],{"type":23,"value":1253},"pnpm type-check",{"type":23,"value":1255},"（",{"type":18,"tag":777,"props":1257,"children":1259},{"className":1258},[],[1260],{"type":23,"value":1261},"tsc --noEmit",{"type":23,"value":1263},"）通过",{"type":18,"tag":410,"props":1265,"children":1266},{},[1267,1273],{"type":18,"tag":777,"props":1268,"children":1270},{"className":1269},[],[1271],{"type":23,"value":1272},"pnpm test:unit",{"type":23,"value":1274},"（Vitest）通过",{"type":18,"tag":410,"props":1276,"children":1277},{},[1278,1280,1286],{"type":23,"value":1279},"构建产物检查（",{"type":18,"tag":777,"props":1281,"children":1283},{"className":1282},[],[1284],{"type":23,"value":1285},"pnpm build",{"type":23,"value":1287},"），确认无警告",{"type":18,"tag":410,"props":1289,"children":1290},{},[1291,1296,1297],{"type":18,"tag":414,"props":1292,"children":1293},{},[1294],{"type":23,"value":1295},"后端额外检查",{"type":23,"value":1230},{"type":18,"tag":406,"props":1298,"children":1299},{},[1300,1311,1321],{"type":18,"tag":410,"props":1301,"children":1302},{},[1303,1309],{"type":18,"tag":777,"props":1304,"children":1306},{"className":1305},[],[1307],{"type":23,"value":1308},"npm run lint",{"type":23,"value":1310}," 通过",{"type":18,"tag":410,"props":1312,"children":1313},{},[1314,1320],{"type":18,"tag":777,"props":1315,"children":1317},{"className":1316},[],[1318],{"type":23,"value":1319},"npm run test",{"type":23,"value":1310},{"type":18,"tag":410,"props":1322,"children":1323},{},[1324,1326,1332],{"type":23,"value":1325},"数据库迁移可执行（",{"type":18,"tag":777,"props":1327,"children":1329},{"className":1328},[],[1330],{"type":23,"value":1331},"npm run migrate:up",{"type":23,"value":1333}," 干跑）",{"type":18,"tag":410,"props":1335,"children":1336},{},[1337,1342,1343],{"type":18,"tag":414,"props":1338,"children":1339},{},[1340],{"type":23,"value":1341},"PR 创建规范",{"type":23,"value":1230},{"type":18,"tag":406,"props":1344,"children":1345},{},[1346,1356],{"type":18,"tag":410,"props":1347,"children":1348},{},[1349,1351],{"type":23,"value":1350},"必须创建 ",{"type":18,"tag":414,"props":1352,"children":1353},{},[1354],{"type":23,"value":1355},"Draft PR",{"type":18,"tag":410,"props":1357,"children":1358},{},[1359],{"type":23,"value":1360},"必须设置 Assignees",{"type":18,"tag":460,"props":1362,"children":1364},{"id":1363},"_52-分支模型",[1365],{"type":23,"value":1366},"5.2 分支模型",{"type":18,"tag":406,"props":1368,"children":1369},{},[1370,1396,1421,1444],{"type":18,"tag":410,"props":1371,"children":1372},{},[1373,1378,1380,1386,1388,1394],{"type":18,"tag":414,"props":1374,"children":1375},{},[1376],{"type":23,"value":1377},"主分支",{"type":23,"value":1379},"：",{"type":18,"tag":777,"props":1381,"children":1383},{"className":1382},[],[1384],{"type":23,"value":1385},"main",{"type":23,"value":1387},"（生产）、",{"type":18,"tag":777,"props":1389,"children":1391},{"className":1390},[],[1392],{"type":23,"value":1393},"develop",{"type":23,"value":1395},"（集成）。",{"type":18,"tag":410,"props":1397,"children":1398},{},[1399,1404,1405,1411,1413,1419],{"type":18,"tag":414,"props":1400,"children":1401},{},[1402],{"type":23,"value":1403},"功能分支",{"type":23,"value":1379},{"type":18,"tag":777,"props":1406,"children":1408},{"className":1407},[],[1409],{"type":23,"value":1410},"feature\u002F功能简述-工单号",{"type":23,"value":1412},"（如 ",{"type":18,"tag":777,"props":1414,"children":1416},{"className":1415},[],[1417],{"type":23,"value":1418},"feature\u002Fuser-auth-2847",{"type":23,"value":1420},"）。",{"type":18,"tag":410,"props":1422,"children":1423},{},[1424,1429,1430,1436,1437,1443],{"type":18,"tag":414,"props":1425,"children":1426},{},[1427],{"type":23,"value":1428},"修复分支",{"type":23,"value":1379},{"type":18,"tag":777,"props":1431,"children":1433},{"className":1432},[],[1434],{"type":23,"value":1435},"fix\u002F问题简述",{"type":23,"value":1412},{"type":18,"tag":777,"props":1438,"children":1440},{"className":1439},[],[1441],{"type":23,"value":1442},"fix\u002Flogin-redirect-loop",{"type":23,"value":1420},{"type":18,"tag":410,"props":1445,"children":1446},{},[1447,1452,1453,1459,1460,1466],{"type":18,"tag":414,"props":1448,"children":1449},{},[1450],{"type":23,"value":1451},"发布分支",{"type":23,"value":1379},{"type":18,"tag":777,"props":1454,"children":1456},{"className":1455},[],[1457],{"type":23,"value":1458},"release\u002F版本号",{"type":23,"value":1412},{"type":18,"tag":777,"props":1461,"children":1463},{"className":1462},[],[1464],{"type":23,"value":1465},"release\u002F2.3.0",{"type":23,"value":1420},{"type":18,"tag":460,"props":1468,"children":1470},{"id":1469},"_53-commit-message-规范conventional-commits",[1471],{"type":23,"value":1472},"5.3 Commit Message 规范（Conventional Commits）",{"type":18,"tag":1474,"props":1475,"children":1477},"pre",{"code":1476},"类型(作用域): 简短描述\n\n[可选] 详细说明\n\n[可选] 关联工单：Closes #123\n",[1478],{"type":18,"tag":777,"props":1479,"children":1480},{"__ignoreMap":8},[1481],{"type":23,"value":1476},{"type":18,"tag":406,"props":1483,"children":1484},{},[1485,1558,1647],{"type":18,"tag":410,"props":1486,"children":1487},{},[1488,1493,1494,1500,1502,1508,1510,1516,1518,1524,1526,1532,1534,1540,1542,1548,1550,1556],{"type":18,"tag":414,"props":1489,"children":1490},{},[1491],{"type":23,"value":1492},"类型",{"type":23,"value":1379},{"type":18,"tag":777,"props":1495,"children":1497},{"className":1496},[],[1498],{"type":23,"value":1499},"feat",{"type":23,"value":1501},"（功能）、",{"type":18,"tag":777,"props":1503,"children":1505},{"className":1504},[],[1506],{"type":23,"value":1507},"fix",{"type":23,"value":1509},"（修复）、",{"type":18,"tag":777,"props":1511,"children":1513},{"className":1512},[],[1514],{"type":23,"value":1515},"docs",{"type":23,"value":1517},"（文档）、",{"type":18,"tag":777,"props":1519,"children":1521},{"className":1520},[],[1522],{"type":23,"value":1523},"style",{"type":23,"value":1525},"（格式）、",{"type":18,"tag":777,"props":1527,"children":1529},{"className":1528},[],[1530],{"type":23,"value":1531},"refactor",{"type":23,"value":1533},"（重构）、",{"type":18,"tag":777,"props":1535,"children":1537},{"className":1536},[],[1538],{"type":23,"value":1539},"perf",{"type":23,"value":1541},"（性能）、",{"type":18,"tag":777,"props":1543,"children":1545},{"className":1544},[],[1546],{"type":23,"value":1547},"test",{"type":23,"value":1549},"（测试）、",{"type":18,"tag":777,"props":1551,"children":1553},{"className":1552},[],[1554],{"type":23,"value":1555},"chore",{"type":23,"value":1557},"（杂项）。",{"type":18,"tag":410,"props":1559,"children":1560},{},[1561,1566,1568,1574,1575,1581,1582,1588,1589,1595,1597,1603,1604,1610,1611,1617,1618,1624,1626,1632,1633,1639,1640,1646],{"type":18,"tag":414,"props":1562,"children":1563},{},[1564],{"type":23,"value":1565},"作用域",{"type":23,"value":1567},"：前端用 ",{"type":18,"tag":777,"props":1569,"children":1571},{"className":1570},[],[1572],{"type":23,"value":1573},"ui",{"type":23,"value":629},{"type":18,"tag":777,"props":1576,"children":1578},{"className":1577},[],[1579],{"type":23,"value":1580},"api",{"type":23,"value":629},{"type":18,"tag":777,"props":1583,"children":1585},{"className":1584},[],[1586],{"type":23,"value":1587},"hooks",{"type":23,"value":629},{"type":18,"tag":777,"props":1590,"children":1592},{"className":1591},[],[1593],{"type":23,"value":1594},"components",{"type":23,"value":1596},"；后端用 ",{"type":18,"tag":777,"props":1598,"children":1600},{"className":1599},[],[1601],{"type":23,"value":1602},"auth",{"type":23,"value":629},{"type":18,"tag":777,"props":1605,"children":1607},{"className":1606},[],[1608],{"type":23,"value":1609},"db",{"type":23,"value":629},{"type":18,"tag":777,"props":1612,"children":1614},{"className":1613},[],[1615],{"type":23,"value":1616},"service",{"type":23,"value":629},{"type":18,"tag":777,"props":1619,"children":1621},{"className":1620},[],[1622],{"type":23,"value":1623},"middleware",{"type":23,"value":1625},"；设计用 ",{"type":18,"tag":777,"props":1627,"children":1629},{"className":1628},[],[1630],{"type":23,"value":1631},"assets",{"type":23,"value":629},{"type":18,"tag":777,"props":1634,"children":1636},{"className":1635},[],[1637],{"type":23,"value":1638},"figma",{"type":23,"value":629},{"type":18,"tag":777,"props":1641,"children":1643},{"className":1642},[],[1644],{"type":23,"value":1645},"styles",{"type":23,"value":532},{"type":18,"tag":410,"props":1648,"children":1649},{},[1650,1655,1656,1662],{"type":18,"tag":414,"props":1651,"children":1652},{},[1653],{"type":23,"value":1654},"禁止在 Commit Message 中添加 AI 署名",{"type":23,"value":1412},{"type":18,"tag":777,"props":1657,"children":1659},{"className":1658},[],[1660],{"type":23,"value":1661},"Co-Authored-By: Claude",{"type":23,"value":1420},{"type":18,"tag":389,"props":1664,"children":1666},{"id":1665},"六安全与合规",[1667],{"type":23,"value":1668},"六、安全与合规",{"type":18,"tag":406,"props":1670,"children":1671},{},[1672,1682,1724,1779,1803],{"type":18,"tag":410,"props":1673,"children":1674},{},[1675,1680],{"type":18,"tag":414,"props":1676,"children":1677},{},[1678],{"type":23,"value":1679},"绝不提交敏感信息",{"type":23,"value":1681},"：API Key、数据库密码、JWT Secret、私钥等严禁入仓。",{"type":18,"tag":410,"props":1683,"children":1684},{},[1685,1690,1691],{"type":18,"tag":414,"props":1686,"children":1687},{},[1688],{"type":23,"value":1689},"前端安全",{"type":23,"value":1230},{"type":18,"tag":406,"props":1692,"children":1693},{},[1694,1699,1712],{"type":18,"tag":410,"props":1695,"children":1696},{},[1697],{"type":23,"value":1698},"所有用户输入必须转义（XSS 防护）。",{"type":18,"tag":410,"props":1700,"children":1701},{},[1702,1704,1710],{"type":23,"value":1703},"使用 ",{"type":18,"tag":777,"props":1705,"children":1707},{"className":1706},[],[1708],{"type":23,"value":1709},"DOMPurify",{"type":23,"value":1711}," 处理富文本渲染。",{"type":18,"tag":410,"props":1713,"children":1714},{},[1715,1717,1723],{"type":23,"value":1716},"CSP（Content Security Policy）头部必须配置，禁止 ",{"type":18,"tag":777,"props":1718,"children":1720},{"className":1719},[],[1721],{"type":23,"value":1722},"unsafe-inline",{"type":23,"value":532},{"type":18,"tag":410,"props":1725,"children":1726},{},[1727,1732,1733],{"type":18,"tag":414,"props":1728,"children":1729},{},[1730],{"type":23,"value":1731},"后端安全",{"type":23,"value":1230},{"type":18,"tag":406,"props":1734,"children":1735},{},[1736,1756,1761,1766],{"type":18,"tag":410,"props":1737,"children":1738},{},[1739,1741,1747,1748,1754],{"type":23,"value":1740},"密码必须使用 ",{"type":18,"tag":777,"props":1742,"children":1744},{"className":1743},[],[1745],{"type":23,"value":1746},"bcrypt",{"type":23,"value":1209},{"type":18,"tag":777,"props":1749,"children":1751},{"className":1750},[],[1752],{"type":23,"value":1753},"argon2",{"type":23,"value":1755}," 哈希，禁止 MD5\u002FSHA1。",{"type":18,"tag":410,"props":1757,"children":1758},{},[1759],{"type":23,"value":1760},"JWT 使用 RS256（私钥签名），禁止 HS256（密钥泄露风险）。",{"type":18,"tag":410,"props":1762,"children":1763},{},[1764],{"type":23,"value":1765},"SQL 注入防护：使用 ORM 参数化查询，禁止字符串拼接 SQL。",{"type":18,"tag":410,"props":1767,"children":1768},{},[1769,1771,1777],{"type":23,"value":1770},"NoSQL 注入防护：Mongoose Schema 严格模式，",{"type":18,"tag":777,"props":1772,"children":1774},{"className":1773},[],[1775],{"type":23,"value":1776},"$where",{"type":23,"value":1778}," 禁用。",{"type":18,"tag":410,"props":1780,"children":1781},{},[1782,1787,1789,1795,1796,1802],{"type":18,"tag":414,"props":1783,"children":1784},{},[1785],{"type":23,"value":1786},"文件写入保护",{"type":23,"value":1788},"：编辑\u002F写入文件前，确认目标路径正确，避免覆盖关键配置（如 ",{"type":18,"tag":777,"props":1790,"children":1792},{"className":1791},[],[1793],{"type":23,"value":1794},"vite.config.ts",{"type":23,"value":629},{"type":18,"tag":777,"props":1797,"children":1799},{"className":1798},[],[1800],{"type":23,"value":1801},"docker-compose.yml",{"type":23,"value":1420},{"type":18,"tag":410,"props":1804,"children":1805},{},[1806,1811,1813,1819,1820,1826,1827,1833,1834,1840,1841,1847],{"type":18,"tag":414,"props":1807,"children":1808},{},[1809],{"type":23,"value":1810},"Bash 命令审查",{"type":23,"value":1812},"：执行 ",{"type":18,"tag":777,"props":1814,"children":1816},{"className":1815},[],[1817],{"type":23,"value":1818},"rm",{"type":23,"value":629},{"type":18,"tag":777,"props":1821,"children":1823},{"className":1822},[],[1824],{"type":23,"value":1825},"chmod 777",{"type":23,"value":629},{"type":18,"tag":777,"props":1828,"children":1830},{"className":1829},[],[1831],{"type":23,"value":1832},"sudo",{"type":23,"value":629},{"type":18,"tag":777,"props":1835,"children":1837},{"className":1836},[],[1838],{"type":23,"value":1839},"curl | sh",{"type":23,"value":629},{"type":18,"tag":777,"props":1842,"children":1844},{"className":1843},[],[1845],{"type":23,"value":1846},"docker system prune",{"type":23,"value":1848}," 等高风险命令前，必须二次确认。",{"type":18,"tag":389,"props":1850,"children":1852},{"id":1851},"七项目工程化通用约束",[1853],{"type":23,"value":1854},"七、项目工程化通用约束",{"type":18,"tag":743,"props":1856,"children":1857},{},[1858,1871,1876,1881,1886],{"type":18,"tag":410,"props":1859,"children":1860},{},[1861,1863,1869],{"type":23,"value":1862},"版本管理：不随意修改",{"type":18,"tag":777,"props":1864,"children":1866},{"className":1865},[],[1867],{"type":23,"value":1868},".gitignore",{"type":23,"value":1870},"，不提交环境变量、本地配置、日志文件、依赖缓存",{"type":18,"tag":410,"props":1872,"children":1873},{},[1874],{"type":23,"value":1875},"环境区分：严格区分开发环境、测试环境、正式环境配置，环境变量统一管理",{"type":18,"tag":410,"props":1877,"children":1878},{},[1879],{"type":23,"value":1880},"依赖管理：前端不随意安装无用UI库、工具库；后端不引入冗余Node第三方包",{"type":18,"tag":410,"props":1882,"children":1883},{},[1884],{"type":23,"value":1885},"注释规范：复杂业务逻辑、特殊兼容逻辑必须写中文注释，通用简洁逻辑无需多余注释",{"type":18,"tag":410,"props":1887,"children":1888},{},[1889],{"type":23,"value":1890},"兼容适配：前端兼顾主流浏览器、移动端适配；后端接口兼容低版本调用逻辑",{"type":18,"tag":389,"props":1892,"children":1894},{"id":1893},"八禁止行为清单严格执行",[1895],{"type":23,"value":1896},"八、禁止行为清单（严格执行）",{"type":18,"tag":743,"props":1898,"children":1899},{},[1900,1905,1910,1915,1920,1925],{"type":18,"tag":410,"props":1901,"children":1902},{},[1903],{"type":23,"value":1904},"禁止擅自更换项目技术栈、修改项目目录结构",{"type":18,"tag":410,"props":1906,"children":1907},{},[1908],{"type":23,"value":1909},"禁止前端随意改写全局路由、状态管理核心逻辑",{"type":18,"tag":410,"props":1911,"children":1912},{},[1913],{"type":23,"value":1914},"禁止后端随意改动数据库主表结构、删除原有业务字段",{"type":18,"tag":410,"props":1916,"children":1917},{},[1918],{"type":23,"value":1919},"禁止为了简洁省略必要的参数校验、权限判断",{"type":18,"tag":410,"props":1921,"children":1922},{},[1923],{"type":23,"value":1924},"禁止脱离设计稿自由发挥写页面样式与交互",{"type":18,"tag":410,"props":1926,"children":1927},{},[1928],{"type":23,"value":1929},"禁止编写无法维护、无注释、逻辑混乱的一次性后端接口",{"title":8,"searchDepth":311,"depth":311,"links":1931},[1932,1933,1934,1941,1945,1950,1951,1952],{"id":664,"depth":311,"text":667},{"id":738,"depth":311,"text":741},{"id":837,"depth":311,"text":840,"children":1935},[1936,1937,1938,1939,1940],{"id":843,"depth":643,"text":846},{"id":902,"depth":643,"text":905},{"id":949,"depth":643,"text":952},{"id":980,"depth":643,"text":983},{"id":1014,"depth":643,"text":1017},{"id":1050,"depth":311,"text":1053,"children":1942},[1943,1944],{"id":1056,"depth":643,"text":1059},{"id":1138,"depth":643,"text":1141},{"id":1187,"depth":311,"text":1190,"children":1946},[1947,1948,1949],{"id":1193,"depth":643,"text":1196},{"id":1363,"depth":643,"text":1366},{"id":1469,"depth":643,"text":1472},{"id":1665,"depth":311,"text":1668},{"id":1851,"depth":311,"text":1854},{"id":1893,"depth":311,"text":1896},"content:it:001.md","it\u002F001.md","it\u002F001",{"_path":1957,"_dir":655,"_draft":7,"_partial":7,"_locale":8,"title":1958,"description":1959,"date":11,"tags":1960,"body":1962,"_type":313,"_id":4906,"_source":315,"_file":4907,"_stem":4908,"_extension":318},"\u002Fit\u002F002","袁进 2026 精讲 Git","渡一名师，Git 精讲",[1961],"Git",{"type":15,"children":1963,"toc":4894},[1964,1969,1997,2002,2059,2064,2069,2151,2158,2191,2208,2213,2282,2417,2422,2427,2439,2452,2458,2470,2475,2480,2485,2501,2506,2511,2519,2538,2546,2620,2628,2678,2687,2717,2722,3014,3019,3042,3047,3052,3078,3083,3121,3126,3131,3139,3173,3186,3274,3279,3284,3297,3305,3310,3318,3323,3328,3336,3355,3363,3462,3470,3560,3568,3666,3674,3755,3760,3768,3790,3923,3960,3965,3976,3984,3997,4002,4008,4019,4025,4033,4078,4091,4099,4107,4120,4125,4133,4154,4162,4167,4172,4185,4190,4367,4372,4381,4389,4394,4433,4438,4524,4529,4538,4546,4551,4566,4594,4602,4634,4639,4644,4673,4682,4695,4734,4739,4811,4816,4834,4840,4845,4853,4858,4871,4876,4889],{"type":18,"tag":389,"props":1965,"children":1967},{"id":1966},"动机",[1968],{"type":23,"value":1966},{"type":18,"tag":406,"props":1970,"children":1971},{},[1972,1977,1982,1987,1992],{"type":18,"tag":410,"props":1973,"children":1974},{},[1975],{"type":23,"value":1976},"不小心把正确的代码删了",{"type":18,"tag":410,"props":1978,"children":1979},{},[1980],{"type":23,"value":1981},"写错了，怎么回到之前的版本",{"type":18,"tag":410,"props":1983,"children":1984},{},[1985],{"type":23,"value":1986},"多个人怎么共同开发同一个项目",{"type":18,"tag":410,"props":1988,"children":1989},{},[1990],{"type":23,"value":1991},"这个功能之前好好的，我到底改了啥",{"type":18,"tag":410,"props":1993,"children":1994},{},[1995],{"type":23,"value":1996},"我想临时实验一个新功能",{"type":18,"tag":389,"props":1998,"children":2000},{"id":1999},"安装",[2001],{"type":23,"value":1999},{"type":18,"tag":406,"props":2003,"children":2004},{},[2005,2025,2041],{"type":18,"tag":410,"props":2006,"children":2007},{},[2008,2013,2015,2023],{"type":18,"tag":414,"props":2009,"children":2010},{},[2011],{"type":23,"value":2012},"windows",{"type":23,"value":2014},"：从官网 ",{"type":18,"tag":2016,"props":2017,"children":2021},"a",{"href":2018,"rel":2019},"https:\u002F\u002Fgit-scm.com\u002Finstall\u002F",[2020],"nofollow",[2022],{"type":23,"value":2018},{"type":23,"value":2024}," 下载安装",{"type":18,"tag":410,"props":2026,"children":2027},{},[2028,2033,2035,2040],{"type":18,"tag":414,"props":2029,"children":2030},{},[2031],{"type":23,"value":2032},"mac",{"type":23,"value":2034},"：自带 git，也可以从官网 ",{"type":18,"tag":2016,"props":2036,"children":2038},{"href":2018,"rel":2037},[2020],[2039],{"type":23,"value":2018},{"type":23,"value":2024},{"type":18,"tag":410,"props":2042,"children":2043},{},[2044,2049,2051,2057],{"type":18,"tag":414,"props":2045,"children":2046},{},[2047],{"type":23,"value":2048},"linux",{"type":23,"value":2050},"：使用命令 ",{"type":18,"tag":777,"props":2052,"children":2054},{"className":2053},[],[2055],{"type":23,"value":2056},"sudo apt-get install git",{"type":23,"value":2058}," 安装",{"type":18,"tag":389,"props":2060,"children":2062},{"id":2061},"配置",[2063],{"type":23,"value":2061},{"type":18,"tag":389,"props":2065,"children":2067},{"id":2066},"配置命令",[2068],{"type":23,"value":2066},{"type":18,"tag":1474,"props":2070,"children":2074},{"code":2071,"language":2072,"meta":8,"className":2073,"style":8},"git config -l                   # 查看当前是生效的所有配置\ngit config KEY                  # 查看当前生效的某个具体配置项 KEY 的值\ngit config [--SCOPE] KEY VALUE  # 设置\u002F更新配置项 KEY 的值\n","bash","language-bash shiki shiki-themes github-light",[2075],{"type":18,"tag":777,"props":2076,"children":2077},{"__ignoreMap":8},[2078,2108,2129],{"type":18,"tag":2079,"props":2080,"children":2083},"span",{"class":2081,"line":2082},"line",1,[2084,2090,2096,2102],{"type":18,"tag":2079,"props":2085,"children":2087},{"style":2086},"--shiki-default:#6F42C1",[2088],{"type":23,"value":2089},"git",{"type":18,"tag":2079,"props":2091,"children":2093},{"style":2092},"--shiki-default:#032F62",[2094],{"type":23,"value":2095}," config",{"type":18,"tag":2079,"props":2097,"children":2099},{"style":2098},"--shiki-default:#005CC5",[2100],{"type":23,"value":2101}," -l",{"type":18,"tag":2079,"props":2103,"children":2105},{"style":2104},"--shiki-default:#6A737D",[2106],{"type":23,"value":2107},"                   # 查看当前是生效的所有配置\n",{"type":18,"tag":2079,"props":2109,"children":2110},{"class":2081,"line":311},[2111,2115,2119,2124],{"type":18,"tag":2079,"props":2112,"children":2113},{"style":2086},[2114],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2116,"children":2117},{"style":2092},[2118],{"type":23,"value":2095},{"type":18,"tag":2079,"props":2120,"children":2121},{"style":2092},[2122],{"type":23,"value":2123}," KEY",{"type":18,"tag":2079,"props":2125,"children":2126},{"style":2104},[2127],{"type":23,"value":2128},"                  # 查看当前生效的某个具体配置项 KEY 的值\n",{"type":18,"tag":2079,"props":2130,"children":2131},{"class":2081,"line":643},[2132,2136,2140,2146],{"type":18,"tag":2079,"props":2133,"children":2134},{"style":2086},[2135],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2137,"children":2138},{"style":2092},[2139],{"type":23,"value":2095},{"type":18,"tag":2079,"props":2141,"children":2143},{"style":2142},"--shiki-default:#24292E",[2144],{"type":23,"value":2145}," [--SCOPE] KEY VALUE  ",{"type":18,"tag":2079,"props":2147,"children":2148},{"style":2104},[2149],{"type":23,"value":2150},"# 设置\u002F更新配置项 KEY 的值\n",{"type":18,"tag":2152,"props":2153,"children":2155},"h4",{"id":2154},"配置范围-scope",[2156],{"type":23,"value":2157},"配置范围 SCOPE",{"type":18,"tag":406,"props":2159,"children":2160},{},[2161,2166,2176,2186],{"type":18,"tag":410,"props":2162,"children":2163},{},[2164],{"type":23,"value":2165},"worktree：仅对当前工作树生效",{"type":18,"tag":410,"props":2167,"children":2168},{},[2169,2174],{"type":18,"tag":414,"props":2170,"children":2171},{},[2172],{"type":23,"value":2173},"local",{"type":23,"value":2175},"：【常见】【默认】仅对当前仓库有效",{"type":18,"tag":410,"props":2177,"children":2178},{},[2179,2184],{"type":18,"tag":414,"props":2180,"children":2181},{},[2182],{"type":23,"value":2183},"global",{"type":23,"value":2185},"：【常见】对当前用户的所有仓库有效",{"type":18,"tag":410,"props":2187,"children":2188},{},[2189],{"type":23,"value":2190},"system：对所有用户有效",{"type":18,"tag":19,"props":2192,"children":2193},{},[2194,2196,2200,2202,2206],{"type":23,"value":2195},"优先级从到到低：worktree > ",{"type":18,"tag":414,"props":2197,"children":2198},{},[2199],{"type":23,"value":2173},{"type":23,"value":2201}," > ",{"type":18,"tag":414,"props":2203,"children":2204},{},[2205],{"type":23,"value":2183},{"type":23,"value":2207}," > system",{"type":18,"tag":2152,"props":2209,"children":2211},{"id":2210},"常见配置",[2212],{"type":23,"value":2210},{"type":18,"tag":406,"props":2214,"children":2215},{},[2216,2226,2236,2244,2254,2272],{"type":18,"tag":410,"props":2217,"children":2218},{},[2219,2224],{"type":18,"tag":414,"props":2220,"children":2221},{},[2222],{"type":23,"value":2223},"user.name",{"type":23,"value":2225},"：【必配】配置用户名。后续提交会使用该用户名",{"type":18,"tag":410,"props":2227,"children":2228},{},[2229,2234],{"type":18,"tag":414,"props":2230,"children":2231},{},[2232],{"type":23,"value":2233},"user.email",{"type":23,"value":2235},"：【必配】配置邮箱。后续提交会使用该邮箱",{"type":18,"tag":410,"props":2237,"children":2238},{},[2239,2243],{"type":18,"tag":414,"props":2240,"children":2241},{},[2242],{"type":23,"value":2223},{"type":23,"value":2225},{"type":18,"tag":410,"props":2245,"children":2246},{},[2247,2252],{"type":18,"tag":414,"props":2248,"children":2249},{},[2250],{"type":23,"value":2251},"core.editor",{"type":23,"value":2253},"：配置默认的文本编辑器",{"type":18,"tag":410,"props":2255,"children":2256},{},[2257,2262,2264,2270],{"type":18,"tag":414,"props":2258,"children":2259},{},[2260],{"type":23,"value":2261},"core.ignorecase",{"type":23,"value":2263},"：配置是否忽略文件名的大小写，默认是 ",{"type":18,"tag":777,"props":2265,"children":2267},{"className":2266},[],[2268],{"type":23,"value":2269},"true",{"type":23,"value":2271},"，即忽略大小写",{"type":18,"tag":410,"props":2273,"children":2274},{},[2275,2280],{"type":18,"tag":414,"props":2276,"children":2277},{},[2278],{"type":23,"value":2279},"init.defaultbranch",{"type":23,"value":2281},"：配置初始化后的默认分支名",{"type":18,"tag":1474,"props":2283,"children":2285},{"code":2284,"language":2072,"meta":8,"className":2073,"style":8},"git config --global user.name \"wangchong1118\"\ngit config --global user.email \"wangchong1118@126.com\"\ngit config --global core.editor \"code\"\ngit config --global core.ignorecase false\ngit config --global init.defaultbranch \"main\"\n",[2286],{"type":18,"tag":777,"props":2287,"children":2288},{"__ignoreMap":8},[2289,2315,2340,2365,2391],{"type":18,"tag":2079,"props":2290,"children":2291},{"class":2081,"line":2082},[2292,2296,2300,2305,2310],{"type":18,"tag":2079,"props":2293,"children":2294},{"style":2086},[2295],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2297,"children":2298},{"style":2092},[2299],{"type":23,"value":2095},{"type":18,"tag":2079,"props":2301,"children":2302},{"style":2098},[2303],{"type":23,"value":2304}," --global",{"type":18,"tag":2079,"props":2306,"children":2307},{"style":2092},[2308],{"type":23,"value":2309}," user.name",{"type":18,"tag":2079,"props":2311,"children":2312},{"style":2092},[2313],{"type":23,"value":2314}," \"wangchong1118\"\n",{"type":18,"tag":2079,"props":2316,"children":2317},{"class":2081,"line":311},[2318,2322,2326,2330,2335],{"type":18,"tag":2079,"props":2319,"children":2320},{"style":2086},[2321],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2323,"children":2324},{"style":2092},[2325],{"type":23,"value":2095},{"type":18,"tag":2079,"props":2327,"children":2328},{"style":2098},[2329],{"type":23,"value":2304},{"type":18,"tag":2079,"props":2331,"children":2332},{"style":2092},[2333],{"type":23,"value":2334}," user.email",{"type":18,"tag":2079,"props":2336,"children":2337},{"style":2092},[2338],{"type":23,"value":2339}," \"wangchong1118@126.com\"\n",{"type":18,"tag":2079,"props":2341,"children":2342},{"class":2081,"line":643},[2343,2347,2351,2355,2360],{"type":18,"tag":2079,"props":2344,"children":2345},{"style":2086},[2346],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2348,"children":2349},{"style":2092},[2350],{"type":23,"value":2095},{"type":18,"tag":2079,"props":2352,"children":2353},{"style":2098},[2354],{"type":23,"value":2304},{"type":18,"tag":2079,"props":2356,"children":2357},{"style":2092},[2358],{"type":23,"value":2359}," core.editor",{"type":18,"tag":2079,"props":2361,"children":2362},{"style":2092},[2363],{"type":23,"value":2364}," \"code\"\n",{"type":18,"tag":2079,"props":2366,"children":2368},{"class":2081,"line":2367},4,[2369,2373,2377,2381,2386],{"type":18,"tag":2079,"props":2370,"children":2371},{"style":2086},[2372],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2374,"children":2375},{"style":2092},[2376],{"type":23,"value":2095},{"type":18,"tag":2079,"props":2378,"children":2379},{"style":2098},[2380],{"type":23,"value":2304},{"type":18,"tag":2079,"props":2382,"children":2383},{"style":2092},[2384],{"type":23,"value":2385}," core.ignorecase",{"type":18,"tag":2079,"props":2387,"children":2388},{"style":2098},[2389],{"type":23,"value":2390}," false\n",{"type":18,"tag":2079,"props":2392,"children":2394},{"class":2081,"line":2393},5,[2395,2399,2403,2407,2412],{"type":18,"tag":2079,"props":2396,"children":2397},{"style":2086},[2398],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2400,"children":2401},{"style":2092},[2402],{"type":23,"value":2095},{"type":18,"tag":2079,"props":2404,"children":2405},{"style":2098},[2406],{"type":23,"value":2304},{"type":18,"tag":2079,"props":2408,"children":2409},{"style":2092},[2410],{"type":23,"value":2411}," init.defaultbranch",{"type":18,"tag":2079,"props":2413,"children":2414},{"style":2092},[2415],{"type":23,"value":2416}," \"main\"\n",{"type":18,"tag":389,"props":2418,"children":2420},{"id":2419},"初始化",[2421],{"type":23,"value":2419},{"type":18,"tag":19,"props":2423,"children":2424},{},[2425],{"type":23,"value":2426},"要对一个目录使用 git 进行版本管理，必须先将该目录设置为 git 仓库",{"type":18,"tag":19,"props":2428,"children":2429},{},[2430,2431,2437],{"type":23,"value":1703},{"type":18,"tag":777,"props":2432,"children":2434},{"className":2433},[],[2435],{"type":23,"value":2436},"git init",{"type":23,"value":2438}," 命令初始化一个新的 git 仓库",{"type":18,"tag":19,"props":2440,"children":2441},{},[2442,2444,2450],{"type":23,"value":2443},"该命令会在当前目录下创建一个 ",{"type":18,"tag":777,"props":2445,"children":2447},{"className":2446},[],[2448],{"type":23,"value":2449},".git",{"type":23,"value":2451}," 目录，该目录就是 git 仓库，里面记录了仓库的所有信息。该目录不可删除，一旦删除，该仓库就不存在了",{"type":18,"tag":389,"props":2453,"children":2455},{"id":2454},"项目忽略文件-gitignore",[2456],{"type":23,"value":2457},"项目忽略文件 .gitignore",{"type":18,"tag":19,"props":2459,"children":2460},{},[2461,2463,2468],{"type":23,"value":2462},"仓库中某些文件是「个人专属」不需要的文件排除，不会在团队间共享，可以使用 ",{"type":18,"tag":777,"props":2464,"children":2466},{"className":2465},[],[2467],{"type":23,"value":1868},{"type":23,"value":2469}," 文件将不需要的文件在提交仓库是自动排除掉",{"type":18,"tag":389,"props":2471,"children":2473},{"id":2472},"提交",[2474],{"type":23,"value":2472},{"type":18,"tag":19,"props":2476,"children":2477},{},[2478],{"type":23,"value":2479},"每一次提交就相当于将当前目录下的所有文件进行「拍照」，「照片」会保存在 git 仓库中",{"type":18,"tag":19,"props":2481,"children":2482},{},[2483],{"type":23,"value":2484},"「拍照」的主要目的，是为了将来可以在不同的「照片」之间进行比较和恢复",{"type":18,"tag":370,"props":2486,"children":2487},{},[2488],{"type":18,"tag":19,"props":2489,"children":2490},{},[2491,2493,2499],{"type":23,"value":2492},"「照片」的具体位置在 ",{"type":18,"tag":777,"props":2494,"children":2496},{"className":2495},[],[2497],{"type":23,"value":2498},".git\u002Fobjects",{"type":23,"value":2500}," 的目录下",{"type":18,"tag":2152,"props":2502,"children":2504},{"id":2503},"如何提交",[2505],{"type":23,"value":2503},{"type":18,"tag":19,"props":2507,"children":2508},{},[2509],{"type":23,"value":2510},"提交分为两步：",{"type":18,"tag":743,"props":2512,"children":2513},{},[2514],{"type":18,"tag":410,"props":2515,"children":2516},{},[2517],{"type":23,"value":2518},"【可选】查看当前 git 状态",{"type":18,"tag":1474,"props":2520,"children":2522},{"code":2521,"language":2072,"meta":8,"className":2073,"style":8},"git status\n",[2523],{"type":18,"tag":777,"props":2524,"children":2525},{"__ignoreMap":8},[2526],{"type":18,"tag":2079,"props":2527,"children":2528},{"class":2081,"line":2082},[2529,2533],{"type":18,"tag":2079,"props":2530,"children":2531},{"style":2086},[2532],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2534,"children":2535},{"style":2092},[2536],{"type":23,"value":2537}," status\n",{"type":18,"tag":743,"props":2539,"children":2540},{"start":311},[2541],{"type":18,"tag":410,"props":2542,"children":2543},{},[2544],{"type":23,"value":2545},"将更新的文件暂存起来",{"type":18,"tag":1474,"props":2547,"children":2549},{"code":2548,"language":2072,"meta":8,"className":2073,"style":8},"git add \u003Cfile1> \u003Cfile2>     # 暂存指定的文件\ngit add .                   # 暂存当前项目目录及子目录下的所有文件\n",[2550],{"type":18,"tag":777,"props":2551,"children":2552},{"__ignoreMap":8},[2553,2599],{"type":18,"tag":2079,"props":2554,"children":2555},{"class":2081,"line":2082},[2556,2560,2565,2571,2576,2581,2585,2589,2594],{"type":18,"tag":2079,"props":2557,"children":2558},{"style":2086},[2559],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2561,"children":2562},{"style":2092},[2563],{"type":23,"value":2564}," add",{"type":18,"tag":2079,"props":2566,"children":2568},{"style":2567},"--shiki-default:#D73A49",[2569],{"type":23,"value":2570}," \u003C",{"type":18,"tag":2079,"props":2572,"children":2573},{"style":2092},[2574],{"type":23,"value":2575},"file",{"type":18,"tag":2079,"props":2577,"children":2578},{"style":2567},[2579],{"type":23,"value":2580},"1>",{"type":18,"tag":2079,"props":2582,"children":2583},{"style":2567},[2584],{"type":23,"value":2570},{"type":18,"tag":2079,"props":2586,"children":2587},{"style":2092},[2588],{"type":23,"value":2575},{"type":18,"tag":2079,"props":2590,"children":2591},{"style":2567},[2592],{"type":23,"value":2593},"2>",{"type":18,"tag":2079,"props":2595,"children":2596},{"style":2104},[2597],{"type":23,"value":2598},"     # 暂存指定的文件\n",{"type":18,"tag":2079,"props":2600,"children":2601},{"class":2081,"line":311},[2602,2606,2610,2615],{"type":18,"tag":2079,"props":2603,"children":2604},{"style":2086},[2605],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2607,"children":2608},{"style":2092},[2609],{"type":23,"value":2564},{"type":18,"tag":2079,"props":2611,"children":2612},{"style":2092},[2613],{"type":23,"value":2614}," .",{"type":18,"tag":2079,"props":2616,"children":2617},{"style":2104},[2618],{"type":23,"value":2619},"                   # 暂存当前项目目录及子目录下的所有文件\n",{"type":18,"tag":743,"props":2621,"children":2622},{"start":643},[2623],{"type":18,"tag":410,"props":2624,"children":2625},{},[2626],{"type":23,"value":2627},"将暂存的内容一起提交",{"type":18,"tag":1474,"props":2629,"children":2631},{"code":2630,"language":2072,"meta":8,"className":2073,"style":8},"git commit # 会自动打开默认的文本编辑器，在编辑器中编写提交信息，保存后自动完成提交\ngit commit -m \"提交信息\"        # 直接在命令行中直接编写提交信息，直接完成提交，不打开文本编辑器\n",[2632],{"type":18,"tag":777,"props":2633,"children":2634},{"__ignoreMap":8},[2635,2652],{"type":18,"tag":2079,"props":2636,"children":2637},{"class":2081,"line":2082},[2638,2642,2647],{"type":18,"tag":2079,"props":2639,"children":2640},{"style":2086},[2641],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2643,"children":2644},{"style":2092},[2645],{"type":23,"value":2646}," commit",{"type":18,"tag":2079,"props":2648,"children":2649},{"style":2104},[2650],{"type":23,"value":2651}," # 会自动打开默认的文本编辑器，在编辑器中编写提交信息，保存后自动完成提交\n",{"type":18,"tag":2079,"props":2653,"children":2654},{"class":2081,"line":311},[2655,2659,2663,2668,2673],{"type":18,"tag":2079,"props":2656,"children":2657},{"style":2086},[2658],{"type":23,"value":2089},{"type":18,"tag":2079,"props":2660,"children":2661},{"style":2092},[2662],{"type":23,"value":2646},{"type":18,"tag":2079,"props":2664,"children":2665},{"style":2098},[2666],{"type":23,"value":2667}," -m",{"type":18,"tag":2079,"props":2669,"children":2670},{"style":2092},[2671],{"type":23,"value":2672}," \"提交信息\"",{"type":18,"tag":2079,"props":2674,"children":2675},{"style":2104},[2676],{"type":23,"value":2677},"        # 直接在命令行中直接编写提交信息，直接完成提交，不打开文本编辑器\n",{"type":18,"tag":19,"props":2679,"children":2680},{},[2681,2686],{"type":18,"tag":414,"props":2682,"children":2683},{},[2684],{"type":23,"value":2685},"术语",{"type":23,"value":1379},{"type":18,"tag":406,"props":2688,"children":2689},{},[2690,2700],{"type":18,"tag":410,"props":2691,"children":2692},{},[2693,2698],{"type":18,"tag":414,"props":2694,"children":2695},{},[2696],{"type":23,"value":2697},"工作区",{"type":23,"value":2699},"：真实的工作文件",{"type":18,"tag":410,"props":2701,"children":2702},{},[2703,2708,2709,2715],{"type":18,"tag":414,"props":2704,"children":2705},{},[2706],{"type":23,"value":2707},"暂存区",{"type":23,"value":1379},{"type":18,"tag":777,"props":2710,"children":2712},{"className":2711},[],[2713],{"type":23,"value":2714},"git add",{"type":23,"value":2716}," 命令暂存起来的文件",{"type":18,"tag":2152,"props":2718,"children":2720},{"id":2719},"提交信息编写规范",[2721],{"type":23,"value":2719},{"type":18,"tag":2723,"props":2724,"children":2725},"table",{},[2726,2755],{"type":18,"tag":2727,"props":2728,"children":2729},"thead",{},[2730],{"type":18,"tag":2731,"props":2732,"children":2733},"tr",{},[2734,2740,2745,2750],{"type":18,"tag":2735,"props":2736,"children":2737},"th",{},[2738],{"type":23,"value":2739},"提交类型",{"type":18,"tag":2735,"props":2741,"children":2742},{},[2743],{"type":23,"value":2744},"标识符",{"type":18,"tag":2735,"props":2746,"children":2747},{},[2748],{"type":23,"value":2749},"说明",{"type":18,"tag":2735,"props":2751,"children":2752},{},[2753],{"type":23,"value":2754},"示例",{"type":18,"tag":2756,"props":2757,"children":2758},"tbody",{},[2759,2785,2810,2835,2857,2879,2901,2923,2946,2969,2991],{"type":18,"tag":2731,"props":2760,"children":2761},{},[2762,2771,2775,2780],{"type":18,"tag":2763,"props":2764,"children":2765},"td",{},[2766],{"type":18,"tag":414,"props":2767,"children":2768},{},[2769],{"type":23,"value":2770},"功能新增",{"type":18,"tag":2763,"props":2772,"children":2773},{},[2774],{"type":23,"value":1499},{"type":18,"tag":2763,"props":2776,"children":2777},{},[2778],{"type":23,"value":2779},"新增功能或特性",{"type":18,"tag":2763,"props":2781,"children":2782},{},[2783],{"type":23,"value":2784},"feat: 添加用户登录功能",{"type":18,"tag":2731,"props":2786,"children":2787},{},[2788,2796,2800,2805],{"type":18,"tag":2763,"props":2789,"children":2790},{},[2791],{"type":18,"tag":414,"props":2792,"children":2793},{},[2794],{"type":23,"value":2795},"问题修复",{"type":18,"tag":2763,"props":2797,"children":2798},{},[2799],{"type":23,"value":1507},{"type":18,"tag":2763,"props":2801,"children":2802},{},[2803],{"type":23,"value":2804},"修复bug或问题",{"type":18,"tag":2763,"props":2806,"children":2807},{},[2808],{"type":23,"value":2809},"fix: 修复登录超时问题",{"type":18,"tag":2731,"props":2811,"children":2812},{},[2813,2821,2825,2830],{"type":18,"tag":2763,"props":2814,"children":2815},{},[2816],{"type":18,"tag":414,"props":2817,"children":2818},{},[2819],{"type":23,"value":2820},"文档更新",{"type":18,"tag":2763,"props":2822,"children":2823},{},[2824],{"type":23,"value":1515},{"type":18,"tag":2763,"props":2826,"children":2827},{},[2828],{"type":23,"value":2829},"仅文档变更",{"type":18,"tag":2763,"props":2831,"children":2832},{},[2833],{"type":23,"value":2834},"docs: 更新API使用说明",{"type":18,"tag":2731,"props":2836,"children":2837},{},[2838,2843,2847,2852],{"type":18,"tag":2763,"props":2839,"children":2840},{},[2841],{"type":23,"value":2842},"代码风格",{"type":18,"tag":2763,"props":2844,"children":2845},{},[2846],{"type":23,"value":1523},{"type":18,"tag":2763,"props":2848,"children":2849},{},[2850],{"type":23,"value":2851},"代码格式调整(不影响功能)",{"type":18,"tag":2763,"props":2853,"children":2854},{},[2855],{"type":23,"value":2856},"style:调整代码缩进格式",{"type":18,"tag":2731,"props":2858,"children":2859},{},[2860,2865,2869,2874],{"type":18,"tag":2763,"props":2861,"children":2862},{},[2863],{"type":23,"value":2864},"代码重构",{"type":18,"tag":2763,"props":2866,"children":2867},{},[2868],{"type":23,"value":1531},{"type":18,"tag":2763,"props":2870,"children":2871},{},[2872],{"type":23,"value":2873},"代码重构（非功能变更）",{"type":18,"tag":2763,"props":2875,"children":2876},{},[2877],{"type":23,"value":2878},"refactor: 重构用户认证模块",{"type":18,"tag":2731,"props":2880,"children":2881},{},[2882,2887,2891,2896],{"type":18,"tag":2763,"props":2883,"children":2884},{},[2885],{"type":23,"value":2886},"性能优化",{"type":18,"tag":2763,"props":2888,"children":2889},{},[2890],{"type":23,"value":1539},{"type":18,"tag":2763,"props":2892,"children":2893},{},[2894],{"type":23,"value":2895},"性能优化相关",{"type":18,"tag":2763,"props":2897,"children":2898},{},[2899],{"type":23,"value":2900},"perf: 优化数据库查询性能",{"type":18,"tag":2731,"props":2902,"children":2903},{},[2904,2909,2913,2918],{"type":18,"tag":2763,"props":2905,"children":2906},{},[2907],{"type":23,"value":2908},"测试相关",{"type":18,"tag":2763,"props":2910,"children":2911},{},[2912],{"type":23,"value":1547},{"type":18,"tag":2763,"props":2914,"children":2915},{},[2916],{"type":23,"value":2917},"测试用例相关",{"type":18,"tag":2763,"props":2919,"children":2920},{},[2921],{"type":23,"value":2922},"test：添加登录功能单元测试",{"type":18,"tag":2731,"props":2924,"children":2925},{},[2926,2931,2936,2941],{"type":18,"tag":2763,"props":2927,"children":2928},{},[2929],{"type":23,"value":2930},"构建系统",{"type":18,"tag":2763,"props":2932,"children":2933},{},[2934],{"type":23,"value":2935},"build",{"type":18,"tag":2763,"props":2937,"children":2938},{},[2939],{"type":23,"value":2940},"构建系统或外部依赖变更",{"type":18,"tag":2763,"props":2942,"children":2943},{},[2944],{"type":23,"value":2945},"build: 更新 webpack 配置",{"type":18,"tag":2731,"props":2947,"children":2948},{},[2949,2954,2959,2964],{"type":18,"tag":2763,"props":2950,"children":2951},{},[2952],{"type":23,"value":2953},"持续集成",{"type":18,"tag":2763,"props":2955,"children":2956},{},[2957],{"type":23,"value":2958},"ci",{"type":18,"tag":2763,"props":2960,"children":2961},{},[2962],{"type":23,"value":2963},"CI\u002FCD配置变更",{"type":18,"tag":2763,"props":2965,"children":2966},{},[2967],{"type":23,"value":2968},"ci: 添加 GitHub Actions 工作流",{"type":18,"tag":2731,"props":2970,"children":2971},{},[2972,2977,2981,2986],{"type":18,"tag":2763,"props":2973,"children":2974},{},[2975],{"type":23,"value":2976},"工具变更",{"type":18,"tag":2763,"props":2978,"children":2979},{},[2980],{"type":23,"value":1555},{"type":18,"tag":2763,"props":2982,"children":2983},{},[2984],{"type":23,"value":2985},"构建过程或辅助工具变更",{"type":18,"tag":2763,"props":2987,"children":2988},{},[2989],{"type":23,"value":2990},"chore: 更新依赖包版本",{"type":18,"tag":2731,"props":2992,"children":2993},{},[2994,2999,3004,3009],{"type":18,"tag":2763,"props":2995,"children":2996},{},[2997],{"type":23,"value":2998},"回滚操作",{"type":18,"tag":2763,"props":3000,"children":3001},{},[3002],{"type":23,"value":3003},"revert",{"type":18,"tag":2763,"props":3005,"children":3006},{},[3007],{"type":23,"value":3008},"回滚之前的提交",{"type":18,"tag":2763,"props":3010,"children":3011},{},[3012],{"type":23,"value":3013},"revert: 回滚错误的合并提交",{"type":18,"tag":2152,"props":3015,"children":3017},{"id":3016},"提交信息修改",[3018],{"type":23,"value":3016},{"type":18,"tag":1474,"props":3020,"children":3022},{"code":3021,"language":2072,"meta":8,"className":2073,"style":8},"git commit -amend\n",[3023],{"type":18,"tag":777,"props":3024,"children":3025},{"__ignoreMap":8},[3026],{"type":18,"tag":2079,"props":3027,"children":3028},{"class":2081,"line":2082},[3029,3033,3037],{"type":18,"tag":2079,"props":3030,"children":3031},{"style":2086},[3032],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3034,"children":3035},{"style":2092},[3036],{"type":23,"value":2646},{"type":18,"tag":2079,"props":3038,"children":3039},{"style":2098},[3040],{"type":23,"value":3041}," -amend\n",{"type":18,"tag":19,"props":3043,"children":3044},{},[3045],{"type":23,"value":3046},"该命令通常用于修改最新的提交消息",{"type":18,"tag":19,"props":3048,"children":3049},{},[3050],{"type":23,"value":3051},"所以使用该命令时，要确保自己所在的位置在最新的位置",{"type":18,"tag":370,"props":3053,"children":3054},{},[3055,3060,3073],{"type":18,"tag":19,"props":3056,"children":3057},{},[3058],{"type":23,"value":3059},"最佳实践 1：",{"type":18,"tag":743,"props":3061,"children":3062},{},[3063,3068],{"type":18,"tag":410,"props":3064,"children":3065},{},[3066],{"type":23,"value":3067},"编与提交消息时，尽量不要犯错",{"type":18,"tag":410,"props":3069,"children":3070},{},[3071],{"type":23,"value":3072},"提交后，立即审核提交消息，发现消息错误，立即通过上面的命令修复",{"type":18,"tag":19,"props":3074,"children":3075},{},[3076],{"type":23,"value":3077},"最佳实践 2：让 AI 编写提交消息，审核后发布",{"type":18,"tag":2152,"props":3079,"children":3081},{"id":3080},"回滚某个提交",[3082],{"type":23,"value":3080},{"type":18,"tag":1474,"props":3084,"children":3086},{"code":3085,"language":2072,"meta":8,"className":2073,"style":8},"git restore --source COMMIT_ID .    # 将指定的提交覆盖到当前项目工作区\n",[3087],{"type":18,"tag":777,"props":3088,"children":3089},{"__ignoreMap":8},[3090],{"type":18,"tag":2079,"props":3091,"children":3092},{"class":2081,"line":2082},[3093,3097,3102,3107,3112,3116],{"type":18,"tag":2079,"props":3094,"children":3095},{"style":2086},[3096],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3098,"children":3099},{"style":2092},[3100],{"type":23,"value":3101}," restore",{"type":18,"tag":2079,"props":3103,"children":3104},{"style":2098},[3105],{"type":23,"value":3106}," --source",{"type":18,"tag":2079,"props":3108,"children":3109},{"style":2092},[3110],{"type":23,"value":3111}," COMMIT_ID",{"type":18,"tag":2079,"props":3113,"children":3114},{"style":2092},[3115],{"type":23,"value":2614},{"type":18,"tag":2079,"props":3117,"children":3118},{"style":2104},[3119],{"type":23,"value":3120},"    # 将指定的提交覆盖到当前项目工作区\n",{"type":18,"tag":19,"props":3122,"children":3123},{},[3124],{"type":23,"value":3125},"使用上述命令时，要确保工作区干净（暂存区没东西，工作区无更改）",{"type":18,"tag":19,"props":3127,"children":3128},{},[3129],{"type":23,"value":3130},"工作区如果不干净怎么办？（暂存区没东西或者工作区有更改）",{"type":18,"tag":743,"props":3132,"children":3133},{},[3134],{"type":18,"tag":410,"props":3135,"children":3136},{},[3137],{"type":23,"value":3138},"先把目前状态保存到存储库",{"type":18,"tag":1474,"props":3140,"children":3142},{"code":3141,"language":2072,"meta":8,"className":2073,"style":8},"git stash push -u -a\n",[3143],{"type":18,"tag":777,"props":3144,"children":3145},{"__ignoreMap":8},[3146],{"type":18,"tag":2079,"props":3147,"children":3148},{"class":2081,"line":2082},[3149,3153,3158,3163,3168],{"type":18,"tag":2079,"props":3150,"children":3151},{"style":2086},[3152],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3154,"children":3155},{"style":2092},[3156],{"type":23,"value":3157}," stash",{"type":18,"tag":2079,"props":3159,"children":3160},{"style":2092},[3161],{"type":23,"value":3162}," push",{"type":18,"tag":2079,"props":3164,"children":3165},{"style":2098},[3166],{"type":23,"value":3167}," -u",{"type":18,"tag":2079,"props":3169,"children":3170},{"style":2098},[3171],{"type":23,"value":3172}," -a\n",{"type":18,"tag":743,"props":3174,"children":3175},{"start":311},[3176,3181],{"type":18,"tag":410,"props":3177,"children":3178},{},[3179],{"type":23,"value":3180},"工作区干净了，就可以做任何其他的事情",{"type":18,"tag":410,"props":3182,"children":3183},{},[3184],{"type":23,"value":3185},"如果要恢复工作区",{"type":18,"tag":1474,"props":3187,"children":3189},{"code":3188,"language":2072,"meta":8,"className":2073,"style":8},"git stash list  # 【可选】列出所有的存储\ngit stash pop   # 恢复上一次的存储，同时删除上一次的存储\ngit stash pop \u003CSTASH_ID> # 恢复到指定ID的存储，同时删除该存储\n",[3190],{"type":18,"tag":777,"props":3191,"children":3192},{"__ignoreMap":8},[3193,3214,3235],{"type":18,"tag":2079,"props":3194,"children":3195},{"class":2081,"line":2082},[3196,3200,3204,3209],{"type":18,"tag":2079,"props":3197,"children":3198},{"style":2086},[3199],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3201,"children":3202},{"style":2092},[3203],{"type":23,"value":3157},{"type":18,"tag":2079,"props":3205,"children":3206},{"style":2092},[3207],{"type":23,"value":3208}," list",{"type":18,"tag":2079,"props":3210,"children":3211},{"style":2104},[3212],{"type":23,"value":3213},"  # 【可选】列出所有的存储\n",{"type":18,"tag":2079,"props":3215,"children":3216},{"class":2081,"line":311},[3217,3221,3225,3230],{"type":18,"tag":2079,"props":3218,"children":3219},{"style":2086},[3220],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3222,"children":3223},{"style":2092},[3224],{"type":23,"value":3157},{"type":18,"tag":2079,"props":3226,"children":3227},{"style":2092},[3228],{"type":23,"value":3229}," pop",{"type":18,"tag":2079,"props":3231,"children":3232},{"style":2104},[3233],{"type":23,"value":3234},"   # 恢复上一次的存储，同时删除上一次的存储\n",{"type":18,"tag":2079,"props":3236,"children":3237},{"class":2081,"line":643},[3238,3242,3246,3250,3254,3259,3264,3269],{"type":18,"tag":2079,"props":3239,"children":3240},{"style":2086},[3241],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3243,"children":3244},{"style":2092},[3245],{"type":23,"value":3157},{"type":18,"tag":2079,"props":3247,"children":3248},{"style":2092},[3249],{"type":23,"value":3229},{"type":18,"tag":2079,"props":3251,"children":3252},{"style":2567},[3253],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3255,"children":3256},{"style":2092},[3257],{"type":23,"value":3258},"STASH_I",{"type":18,"tag":2079,"props":3260,"children":3261},{"style":2142},[3262],{"type":23,"value":3263},"D",{"type":18,"tag":2079,"props":3265,"children":3266},{"style":2567},[3267],{"type":23,"value":3268},">",{"type":18,"tag":2079,"props":3270,"children":3271},{"style":2104},[3272],{"type":23,"value":3273}," # 恢复到指定ID的存储，同时删除该存储\n",{"type":18,"tag":389,"props":3275,"children":3277},{"id":3276},"分支",[3278],{"type":23,"value":3276},{"type":18,"tag":19,"props":3280,"children":3281},{},[3282],{"type":23,"value":3283},"牢记一下两点：",{"type":18,"tag":406,"props":3285,"children":3286},{},[3287,3292],{"type":18,"tag":410,"props":3288,"children":3289},{},[3290],{"type":23,"value":3291},"分支是一个指针，指向一个快照",{"type":18,"tag":410,"props":3293,"children":3294},{},[3295],{"type":23,"value":3296},"HEAD 是一个指针，指向一个分支",{"type":18,"tag":1474,"props":3298,"children":3300},{"code":3299},"提交 1 --> 提交 2 --> 提交 3\n\n分支 1 --> 提交 3\nHEAD --> 分支 1\n",[3301],{"type":18,"tag":777,"props":3302,"children":3303},{"__ignoreMap":8},[3304],{"type":23,"value":3299},{"type":18,"tag":19,"props":3306,"children":3307},{},[3308],{"type":23,"value":3309},"简化后",{"type":18,"tag":1474,"props":3311,"children":3313},{"code":3312},"提交 1 --> 提交 2 --> 提交 3 (*分支 1)\n",[3314],{"type":18,"tag":777,"props":3315,"children":3316},{"__ignoreMap":8},[3317],{"type":23,"value":3312},{"type":18,"tag":2152,"props":3319,"children":3321},{"id":3320},"分支管理",[3322],{"type":23,"value":3320},{"type":18,"tag":19,"props":3324,"children":3325},{},[3326],{"type":23,"value":3327},"分支基本操作：",{"type":18,"tag":743,"props":3329,"children":3330},{},[3331],{"type":18,"tag":410,"props":3332,"children":3333},{},[3334],{"type":23,"value":3335},"查看分支",{"type":18,"tag":1474,"props":3337,"children":3339},{"code":3338,"language":2072,"meta":8,"className":2073,"style":8},"git branch\n",[3340],{"type":18,"tag":777,"props":3341,"children":3342},{"__ignoreMap":8},[3343],{"type":18,"tag":2079,"props":3344,"children":3345},{"class":2081,"line":2082},[3346,3350],{"type":18,"tag":2079,"props":3347,"children":3348},{"style":2086},[3349],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3351,"children":3352},{"style":2092},[3353],{"type":23,"value":3354}," branch\n",{"type":18,"tag":743,"props":3356,"children":3357},{"start":311},[3358],{"type":18,"tag":410,"props":3359,"children":3360},{},[3361],{"type":23,"value":3362},"分支重命名",{"type":18,"tag":1474,"props":3364,"children":3366},{"code":3365,"language":2072,"meta":8,"className":2073,"style":8},"git branch -m \u003Cnew-name>                # 重命名当前分支\ngit branch -m \u003Cold-name> \u003Cnew-name>     # 重命名指定分支\n",[3367],{"type":18,"tag":777,"props":3368,"children":3369},{"__ignoreMap":8},[3370,3409],{"type":18,"tag":2079,"props":3371,"children":3372},{"class":2081,"line":2082},[3373,3377,3382,3386,3390,3395,3400,3404],{"type":18,"tag":2079,"props":3374,"children":3375},{"style":2086},[3376],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3378,"children":3379},{"style":2092},[3380],{"type":23,"value":3381}," branch",{"type":18,"tag":2079,"props":3383,"children":3384},{"style":2098},[3385],{"type":23,"value":2667},{"type":18,"tag":2079,"props":3387,"children":3388},{"style":2567},[3389],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3391,"children":3392},{"style":2092},[3393],{"type":23,"value":3394},"new-nam",{"type":18,"tag":2079,"props":3396,"children":3397},{"style":2142},[3398],{"type":23,"value":3399},"e",{"type":18,"tag":2079,"props":3401,"children":3402},{"style":2567},[3403],{"type":23,"value":3268},{"type":18,"tag":2079,"props":3405,"children":3406},{"style":2104},[3407],{"type":23,"value":3408},"                # 重命名当前分支\n",{"type":18,"tag":2079,"props":3410,"children":3411},{"class":2081,"line":311},[3412,3416,3420,3424,3428,3433,3437,3441,3445,3449,3453,3457],{"type":18,"tag":2079,"props":3413,"children":3414},{"style":2086},[3415],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3417,"children":3418},{"style":2092},[3419],{"type":23,"value":3381},{"type":18,"tag":2079,"props":3421,"children":3422},{"style":2098},[3423],{"type":23,"value":2667},{"type":18,"tag":2079,"props":3425,"children":3426},{"style":2567},[3427],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3429,"children":3430},{"style":2092},[3431],{"type":23,"value":3432},"old-nam",{"type":18,"tag":2079,"props":3434,"children":3435},{"style":2142},[3436],{"type":23,"value":3399},{"type":18,"tag":2079,"props":3438,"children":3439},{"style":2567},[3440],{"type":23,"value":3268},{"type":18,"tag":2079,"props":3442,"children":3443},{"style":2567},[3444],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3446,"children":3447},{"style":2092},[3448],{"type":23,"value":3394},{"type":18,"tag":2079,"props":3450,"children":3451},{"style":2142},[3452],{"type":23,"value":3399},{"type":18,"tag":2079,"props":3454,"children":3455},{"style":2567},[3456],{"type":23,"value":3268},{"type":18,"tag":2079,"props":3458,"children":3459},{"style":2104},[3460],{"type":23,"value":3461},"     # 重命名指定分支\n",{"type":18,"tag":743,"props":3463,"children":3464},{"start":643},[3465],{"type":18,"tag":410,"props":3466,"children":3467},{},[3468],{"type":23,"value":3469},"创建分支",{"type":18,"tag":1474,"props":3471,"children":3473},{"code":3472,"language":2072,"meta":8,"className":2073,"style":8},"git branch \u003Cbranch-name>                # 创建一个新的分支，指针和当前分支相同\ngit branch \u003Cbranch-name> \u003Ccommit-hash>  # 创建一个新的分支，指针指向指定的提交\n",[3474],{"type":18,"tag":777,"props":3475,"children":3476},{"__ignoreMap":8},[3477,3510],{"type":18,"tag":2079,"props":3478,"children":3479},{"class":2081,"line":2082},[3480,3484,3488,3492,3497,3501,3505],{"type":18,"tag":2079,"props":3481,"children":3482},{"style":2086},[3483],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3485,"children":3486},{"style":2092},[3487],{"type":23,"value":3381},{"type":18,"tag":2079,"props":3489,"children":3490},{"style":2567},[3491],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3493,"children":3494},{"style":2092},[3495],{"type":23,"value":3496},"branch-nam",{"type":18,"tag":2079,"props":3498,"children":3499},{"style":2142},[3500],{"type":23,"value":3399},{"type":18,"tag":2079,"props":3502,"children":3503},{"style":2567},[3504],{"type":23,"value":3268},{"type":18,"tag":2079,"props":3506,"children":3507},{"style":2104},[3508],{"type":23,"value":3509},"                # 创建一个新的分支，指针和当前分支相同\n",{"type":18,"tag":2079,"props":3511,"children":3512},{"class":2081,"line":311},[3513,3517,3521,3525,3529,3533,3537,3541,3546,3551,3555],{"type":18,"tag":2079,"props":3514,"children":3515},{"style":2086},[3516],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3518,"children":3519},{"style":2092},[3520],{"type":23,"value":3381},{"type":18,"tag":2079,"props":3522,"children":3523},{"style":2567},[3524],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3526,"children":3527},{"style":2092},[3528],{"type":23,"value":3496},{"type":18,"tag":2079,"props":3530,"children":3531},{"style":2142},[3532],{"type":23,"value":3399},{"type":18,"tag":2079,"props":3534,"children":3535},{"style":2567},[3536],{"type":23,"value":3268},{"type":18,"tag":2079,"props":3538,"children":3539},{"style":2567},[3540],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3542,"children":3543},{"style":2092},[3544],{"type":23,"value":3545},"commit-has",{"type":18,"tag":2079,"props":3547,"children":3548},{"style":2142},[3549],{"type":23,"value":3550},"h",{"type":18,"tag":2079,"props":3552,"children":3553},{"style":2567},[3554],{"type":23,"value":3268},{"type":18,"tag":2079,"props":3556,"children":3557},{"style":2104},[3558],{"type":23,"value":3559},"  # 创建一个新的分支，指针指向指定的提交\n",{"type":18,"tag":743,"props":3561,"children":3562},{"start":2367},[3563],{"type":18,"tag":410,"props":3564,"children":3565},{},[3566],{"type":23,"value":3567},"切换分支",{"type":18,"tag":1474,"props":3569,"children":3571},{"code":3570,"language":2072,"meta":8,"className":2073,"style":8},"git switch \u003Cbranch-name>    # 切换到指定分支\ngit switch -                # 切换到上一个分支，非常方便的在两个分支间来回切换\ngit switch -c \u003Cbranch-name> # 创建并切换分支的快捷方式：\n",[3572],{"type":18,"tag":777,"props":3573,"children":3574},{"__ignoreMap":8},[3575,3608,3629],{"type":18,"tag":2079,"props":3576,"children":3577},{"class":2081,"line":2082},[3578,3582,3587,3591,3595,3599,3603],{"type":18,"tag":2079,"props":3579,"children":3580},{"style":2086},[3581],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3583,"children":3584},{"style":2092},[3585],{"type":23,"value":3586}," switch",{"type":18,"tag":2079,"props":3588,"children":3589},{"style":2567},[3590],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3592,"children":3593},{"style":2092},[3594],{"type":23,"value":3496},{"type":18,"tag":2079,"props":3596,"children":3597},{"style":2142},[3598],{"type":23,"value":3399},{"type":18,"tag":2079,"props":3600,"children":3601},{"style":2567},[3602],{"type":23,"value":3268},{"type":18,"tag":2079,"props":3604,"children":3605},{"style":2104},[3606],{"type":23,"value":3607},"    # 切换到指定分支\n",{"type":18,"tag":2079,"props":3609,"children":3610},{"class":2081,"line":311},[3611,3615,3619,3624],{"type":18,"tag":2079,"props":3612,"children":3613},{"style":2086},[3614],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3616,"children":3617},{"style":2092},[3618],{"type":23,"value":3586},{"type":18,"tag":2079,"props":3620,"children":3621},{"style":2092},[3622],{"type":23,"value":3623}," -",{"type":18,"tag":2079,"props":3625,"children":3626},{"style":2104},[3627],{"type":23,"value":3628},"                # 切换到上一个分支，非常方便的在两个分支间来回切换\n",{"type":18,"tag":2079,"props":3630,"children":3631},{"class":2081,"line":643},[3632,3636,3640,3645,3649,3653,3657,3661],{"type":18,"tag":2079,"props":3633,"children":3634},{"style":2086},[3635],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3637,"children":3638},{"style":2092},[3639],{"type":23,"value":3586},{"type":18,"tag":2079,"props":3641,"children":3642},{"style":2098},[3643],{"type":23,"value":3644}," -c",{"type":18,"tag":2079,"props":3646,"children":3647},{"style":2567},[3648],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3650,"children":3651},{"style":2092},[3652],{"type":23,"value":3496},{"type":18,"tag":2079,"props":3654,"children":3655},{"style":2142},[3656],{"type":23,"value":3399},{"type":18,"tag":2079,"props":3658,"children":3659},{"style":2567},[3660],{"type":23,"value":3268},{"type":18,"tag":2079,"props":3662,"children":3663},{"style":2104},[3664],{"type":23,"value":3665}," # 创建并切换分支的快捷方式：\n",{"type":18,"tag":743,"props":3667,"children":3668},{"start":2393},[3669],{"type":18,"tag":410,"props":3670,"children":3671},{},[3672],{"type":23,"value":3673},"删除分支",{"type":18,"tag":1474,"props":3675,"children":3677},{"code":3676,"language":2072,"meta":8,"className":2073,"style":8},"git branch -d \u003Cbranch-name> # 删除指定分支\ngit branch -D \u003Cbranch-name> # 强制删除指定分支\n",[3678],{"type":18,"tag":777,"props":3679,"children":3680},{"__ignoreMap":8},[3681,3718],{"type":18,"tag":2079,"props":3682,"children":3683},{"class":2081,"line":2082},[3684,3688,3692,3697,3701,3705,3709,3713],{"type":18,"tag":2079,"props":3685,"children":3686},{"style":2086},[3687],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3689,"children":3690},{"style":2092},[3691],{"type":23,"value":3381},{"type":18,"tag":2079,"props":3693,"children":3694},{"style":2098},[3695],{"type":23,"value":3696}," -d",{"type":18,"tag":2079,"props":3698,"children":3699},{"style":2567},[3700],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3702,"children":3703},{"style":2092},[3704],{"type":23,"value":3496},{"type":18,"tag":2079,"props":3706,"children":3707},{"style":2142},[3708],{"type":23,"value":3399},{"type":18,"tag":2079,"props":3710,"children":3711},{"style":2567},[3712],{"type":23,"value":3268},{"type":18,"tag":2079,"props":3714,"children":3715},{"style":2104},[3716],{"type":23,"value":3717}," # 删除指定分支\n",{"type":18,"tag":2079,"props":3719,"children":3720},{"class":2081,"line":311},[3721,3725,3729,3734,3738,3742,3746,3750],{"type":18,"tag":2079,"props":3722,"children":3723},{"style":2086},[3724],{"type":23,"value":2089},{"type":18,"tag":2079,"props":3726,"children":3727},{"style":2092},[3728],{"type":23,"value":3381},{"type":18,"tag":2079,"props":3730,"children":3731},{"style":2098},[3732],{"type":23,"value":3733}," -D",{"type":18,"tag":2079,"props":3735,"children":3736},{"style":2567},[3737],{"type":23,"value":2570},{"type":18,"tag":2079,"props":3739,"children":3740},{"style":2092},[3741],{"type":23,"value":3496},{"type":18,"tag":2079,"props":3743,"children":3744},{"style":2142},[3745],{"type":23,"value":3399},{"type":18,"tag":2079,"props":3747,"children":3748},{"style":2567},[3749],{"type":23,"value":3268},{"type":18,"tag":2079,"props":3751,"children":3752},{"style":2104},[3753],{"type":23,"value":3754}," # 强制删除指定分支\n",{"type":18,"tag":2152,"props":3756,"children":3758},{"id":3757},"分支的基本生命周期",[3759],{"type":23,"value":3757},{"type":18,"tag":19,"props":3761,"children":3762},{},[3763],{"type":18,"tag":414,"props":3764,"children":3765},{},[3766],{"type":23,"value":3767},"永远不能在主分支上直接改动，主分支永远保证功能的完整可用、可部署",{"type":18,"tag":743,"props":3769,"children":3770},{},[3771,3781],{"type":18,"tag":410,"props":3772,"children":3773},{},[3774,3779],{"type":18,"tag":414,"props":3775,"children":3776},{},[3777],{"type":23,"value":3778},"新需求",{"type":23,"value":3780},"：功能\u002Fbug修复\u002F版本回滚\u002F...",{"type":18,"tag":410,"props":3782,"children":3783},{},[3784,3789],{"type":18,"tag":414,"props":3785,"children":3786},{},[3787],{"type":23,"value":3788},"新建分支",{"type":23,"value":1379},{"type":18,"tag":1474,"props":3791,"children":3793},{"code":3792,"language":2072,"meta":8,"className":2073,"style":8},"feature\u002F*   - 新功能开发\nbugfix\u002F*    - 缺陷修复\nhotfix\u002F*    - 紧急生产修复\nrelease\u002F*   - 版本发布\nchore\u002F*     - 维护性任务\ndocs\u002F*      - 文档更新\nrefactor\u002F*  - 代码重构\n",[3794],{"type":18,"tag":777,"props":3795,"children":3796},{"__ignoreMap":8},[3797,3815,3833,3850,3867,3885,3904],{"type":18,"tag":2079,"props":3798,"children":3799},{"class":2081,"line":2082},[3800,3805,3810],{"type":18,"tag":2079,"props":3801,"children":3802},{"style":2086},[3803],{"type":23,"value":3804},"feature\u002F*",{"type":18,"tag":2079,"props":3806,"children":3807},{"style":2092},[3808],{"type":23,"value":3809},"   -",{"type":18,"tag":2079,"props":3811,"children":3812},{"style":2092},[3813],{"type":23,"value":3814}," 新功能开发\n",{"type":18,"tag":2079,"props":3816,"children":3817},{"class":2081,"line":311},[3818,3823,3828],{"type":18,"tag":2079,"props":3819,"children":3820},{"style":2086},[3821],{"type":23,"value":3822},"bugfix\u002F*",{"type":18,"tag":2079,"props":3824,"children":3825},{"style":2092},[3826],{"type":23,"value":3827},"    -",{"type":18,"tag":2079,"props":3829,"children":3830},{"style":2092},[3831],{"type":23,"value":3832}," 缺陷修复\n",{"type":18,"tag":2079,"props":3834,"children":3835},{"class":2081,"line":643},[3836,3841,3845],{"type":18,"tag":2079,"props":3837,"children":3838},{"style":2086},[3839],{"type":23,"value":3840},"hotfix\u002F*",{"type":18,"tag":2079,"props":3842,"children":3843},{"style":2092},[3844],{"type":23,"value":3827},{"type":18,"tag":2079,"props":3846,"children":3847},{"style":2092},[3848],{"type":23,"value":3849}," 紧急生产修复\n",{"type":18,"tag":2079,"props":3851,"children":3852},{"class":2081,"line":2367},[3853,3858,3862],{"type":18,"tag":2079,"props":3854,"children":3855},{"style":2086},[3856],{"type":23,"value":3857},"release\u002F*",{"type":18,"tag":2079,"props":3859,"children":3860},{"style":2092},[3861],{"type":23,"value":3809},{"type":18,"tag":2079,"props":3863,"children":3864},{"style":2092},[3865],{"type":23,"value":3866}," 版本发布\n",{"type":18,"tag":2079,"props":3868,"children":3869},{"class":2081,"line":2393},[3870,3875,3880],{"type":18,"tag":2079,"props":3871,"children":3872},{"style":2086},[3873],{"type":23,"value":3874},"chore\u002F*",{"type":18,"tag":2079,"props":3876,"children":3877},{"style":2092},[3878],{"type":23,"value":3879},"     -",{"type":18,"tag":2079,"props":3881,"children":3882},{"style":2092},[3883],{"type":23,"value":3884}," 维护性任务\n",{"type":18,"tag":2079,"props":3886,"children":3888},{"class":2081,"line":3887},6,[3889,3894,3899],{"type":18,"tag":2079,"props":3890,"children":3891},{"style":2086},[3892],{"type":23,"value":3893},"docs\u002F*",{"type":18,"tag":2079,"props":3895,"children":3896},{"style":2092},[3897],{"type":23,"value":3898},"      -",{"type":18,"tag":2079,"props":3900,"children":3901},{"style":2092},[3902],{"type":23,"value":3903}," 文档更新\n",{"type":18,"tag":2079,"props":3905,"children":3907},{"class":2081,"line":3906},7,[3908,3913,3918],{"type":18,"tag":2079,"props":3909,"children":3910},{"style":2086},[3911],{"type":23,"value":3912},"refactor\u002F*",{"type":18,"tag":2079,"props":3914,"children":3915},{"style":2092},[3916],{"type":23,"value":3917},"  -",{"type":18,"tag":2079,"props":3919,"children":3920},{"style":2092},[3921],{"type":23,"value":3922}," 代码重构\n",{"type":18,"tag":743,"props":3924,"children":3925},{"start":643},[3926,3936,3944,3952],{"type":18,"tag":410,"props":3927,"children":3928},{},[3929,3934],{"type":18,"tag":414,"props":3930,"children":3931},{},[3932],{"type":23,"value":3933},"在分支上开发测试",{"type":23,"value":3935},"：可能产生多次提交",{"type":18,"tag":410,"props":3937,"children":3938},{},[3939],{"type":18,"tag":414,"props":3940,"children":3941},{},[3942],{"type":23,"value":3943},"合并到主分支",{"type":18,"tag":410,"props":3945,"children":3946},{},[3947],{"type":18,"tag":414,"props":3948,"children":3949},{},[3950],{"type":23,"value":3951},"主分支测试",{"type":18,"tag":410,"props":3953,"children":3954},{},[3955],{"type":18,"tag":414,"props":3956,"children":3957},{},[3958],{"type":23,"value":3959},"删除开发分支",{"type":18,"tag":2152,"props":3961,"children":3963},{"id":3962},"分支常见问题",[3964],{"type":23,"value":3962},{"type":18,"tag":406,"props":3966,"children":3967},{},[3968],{"type":18,"tag":410,"props":3969,"children":3970},{},[3971],{"type":18,"tag":414,"props":3972,"children":3973},{},[3974],{"type":23,"value":3975},"如何保留现场",{"type":18,"tag":1474,"props":3977,"children":3979},{"code":3978},"git stash -a                # 保存当前工作区的修改到存储库\n# 切换分支工作...\n# 切回分支\ngit stash list              # [可选]查询当前存储库\ngit stash pop \u003Cstash-id>    # 调用某个存储库恢复工作区，同时删除存储库\n# 如果存库是最后一个，可以省略 id\n",[3980],{"type":18,"tag":777,"props":3981,"children":3982},{"__ignoreMap":8},[3983],{"type":23,"value":3978},{"type":18,"tag":406,"props":3985,"children":3986},{},[3987],{"type":18,"tag":410,"props":3988,"children":3989},{},[3990,3995],{"type":18,"tag":414,"props":3991,"children":3992},{},[3993],{"type":23,"value":3994},"如何解决冲突",{"type":23,"value":3996},"：冲突必须手动解决，尤其是主分支的冲突",{"type":18,"tag":389,"props":3998,"children":4000},{"id":3999},"远程仓库",[4001],{"type":23,"value":3999},{"type":18,"tag":2152,"props":4003,"children":4005},{"id":4004},"注册-github-账号",[4006],{"type":23,"value":4007},"注册 github 账号",{"type":18,"tag":19,"props":4009,"children":4010},{},[4011,4017],{"type":18,"tag":2016,"props":4012,"children":4015},{"href":4013,"rel":4014},"https:\u002F\u002Fgithub.com",[2020],[4016],{"type":23,"value":4013},{"type":23,"value":4018}," 自行注册",{"type":18,"tag":2152,"props":4020,"children":4022},{"id":4021},"ssh-链接通道配置",[4023],{"type":23,"value":4024},"SSH 链接通道配置",{"type":18,"tag":743,"props":4026,"children":4027},{},[4028],{"type":18,"tag":410,"props":4029,"children":4030},{},[4031],{"type":23,"value":4032},"本地生成密钥对",{"type":18,"tag":1474,"props":4034,"children":4036},{"code":4035,"language":2072,"meta":8,"className":2073,"style":8},"ssh-keygen -t ed25519 -C \"注册 github 的邮箱地址\" -f ~\u002F.ssh\u002Fxxx_github_key\n",[4037],{"type":18,"tag":777,"props":4038,"children":4039},{"__ignoreMap":8},[4040],{"type":18,"tag":2079,"props":4041,"children":4042},{"class":2081,"line":2082},[4043,4048,4053,4058,4063,4068,4073],{"type":18,"tag":2079,"props":4044,"children":4045},{"style":2086},[4046],{"type":23,"value":4047},"ssh-keygen",{"type":18,"tag":2079,"props":4049,"children":4050},{"style":2098},[4051],{"type":23,"value":4052}," -t",{"type":18,"tag":2079,"props":4054,"children":4055},{"style":2092},[4056],{"type":23,"value":4057}," ed25519",{"type":18,"tag":2079,"props":4059,"children":4060},{"style":2098},[4061],{"type":23,"value":4062}," -C",{"type":18,"tag":2079,"props":4064,"children":4065},{"style":2092},[4066],{"type":23,"value":4067}," \"注册 github 的邮箱地址\"",{"type":18,"tag":2079,"props":4069,"children":4070},{"style":2098},[4071],{"type":23,"value":4072}," -f",{"type":18,"tag":2079,"props":4074,"children":4075},{"style":2092},[4076],{"type":23,"value":4077}," ~\u002F.ssh\u002Fxxx_github_key\n",{"type":18,"tag":19,"props":4079,"children":4080},{},[4081,4083,4089],{"type":23,"value":4082},"生成完后，到电脑的 ",{"type":18,"tag":777,"props":4084,"children":4086},{"className":4085},[],[4087],{"type":23,"value":4088},"～\u002F.ssh",{"type":23,"value":4090}," 目录朗可看到之前生成的两个文件：",{"type":18,"tag":1474,"props":4092,"children":4094},{"code":4093},"xxx_github_key          # 私钥\nxxx_github_key.pub      # 公钥\n",[4095],{"type":18,"tag":777,"props":4096,"children":4097},{"__ignoreMap":8},[4098],{"type":23,"value":4093},{"type":18,"tag":743,"props":4100,"children":4101},{"start":311},[4102],{"type":18,"tag":410,"props":4103,"children":4104},{},[4105],{"type":23,"value":4106},"到 github 配置公钥",{"type":18,"tag":19,"props":4108,"children":4109},{},[4110,4112,4118],{"type":23,"value":4111},"登录 github 后，在 github 的地址 ",{"type":18,"tag":2016,"props":4113,"children":4116},{"href":4114,"rel":4115},"https:\u002F\u002Fgithub.com\u002Fsettings\u002Fkeys",[2020],[4117],{"type":23,"value":4114},{"type":23,"value":4119}," 地址下自行配置",{"type":18,"tag":2152,"props":4121,"children":4123},{"id":4122},"配置密钥的配对规则",[4124],{"type":23,"value":4122},{"type":18,"tag":1474,"props":4126,"children":4128},{"code":4127},"flowchart LR\n    PrivateKey1 \u003C--> PublicKey1ForGithub\n    PrivateKey2 \u003C--> PublicKey2ForGithub\n    PrivateKey1 \u003C--> PublicKey1ForGitee\n    PrivateKey3 \u003C--> PublicKey3ForGitlab\n",[4129],{"type":18,"tag":777,"props":4130,"children":4131},{"__ignoreMap":8},[4132],{"type":23,"value":4127},{"type":18,"tag":743,"props":4134,"children":4135},{},[4136,4149],{"type":18,"tag":410,"props":4137,"children":4138},{},[4139,4141,4147],{"type":23,"value":4140},"打开 ",{"type":18,"tag":777,"props":4142,"children":4144},{"className":4143},[],[4145],{"type":23,"value":4146},"~\u002F.ssh\u002Fconfig",{"type":23,"value":4148},"，没有就创建一个",{"type":18,"tag":410,"props":4150,"children":4151},{},[4152],{"type":23,"value":4153},"配置规则",{"type":18,"tag":1474,"props":4155,"children":4157},{"code":4156},"# 规则 1\nHost wyemail.github.com     # 当连接 git@wyemail.github.com 时会匹配到此规则\n    HostName github.com     # 实际上链接发出的主机\n    IdentityFile ~\u002F.ssh\u002Fwyemail_github_key  # 使用的私钥文件\n    User git # 固定写法\n\n# 规则 2\nHost a                          # 当连接 git@a 时会匹配到此规则\n    HostName github.com         # 实际上链接发出的主机\n    IdentityFile ~\u002F.ssh\u002Fa_github_key    # 使用的私钥文件\n    User git # 固定写法 \n    \n上述 PrivateKey 与 PublicKey 的关系图中，一条双向连接线就对应此处的一个规则\n",[4158],{"type":18,"tag":777,"props":4159,"children":4160},{"__ignoreMap":8},[4161],{"type":23,"value":4156},{"type":18,"tag":2152,"props":4163,"children":4165},{"id":4164},"仓库和别名",[4166],{"type":23,"value":4164},{"type":18,"tag":19,"props":4168,"children":4169},{},[4170],{"type":23,"value":4171},"要和远程仓库同步，先得有远程仓库",{"type":18,"tag":743,"props":4173,"children":4174},{},[4175,4180],{"type":18,"tag":410,"props":4176,"children":4177},{},[4178],{"type":23,"value":4179},"在 github 中创建一个远程仓库",{"type":18,"tag":410,"props":4181,"children":4182},{},[4183],{"type":23,"value":4184},"在本地仓库中添加远程仓库的别名",{"type":18,"tag":19,"props":4186,"children":4187},{},[4188],{"type":23,"value":4189},"别名的常见操作",{"type":18,"tag":1474,"props":4191,"children":4193},{"code":4192,"language":2072,"meta":8,"className":2073,"style":8},"# 查看当前的远程仓库的别名\ngit remote          # 简要信息\ngit remote -v       # 详细信息\n\n# 添加别名\ngit remote add 远程仓库别名 远程仓库ssh地址\n\n# 修改别名\ngit remote rename 原别名 新别名\n\n# 删除别名\ngit remote remove 要删除的别名\n",[4194],{"type":18,"tag":777,"props":4195,"children":4196},{"__ignoreMap":8},[4197,4205,4222,4243,4252,4260,4285,4292,4301,4328,4336,4345],{"type":18,"tag":2079,"props":4198,"children":4199},{"class":2081,"line":2082},[4200],{"type":18,"tag":2079,"props":4201,"children":4202},{"style":2104},[4203],{"type":23,"value":4204},"# 查看当前的远程仓库的别名\n",{"type":18,"tag":2079,"props":4206,"children":4207},{"class":2081,"line":311},[4208,4212,4217],{"type":18,"tag":2079,"props":4209,"children":4210},{"style":2086},[4211],{"type":23,"value":2089},{"type":18,"tag":2079,"props":4213,"children":4214},{"style":2092},[4215],{"type":23,"value":4216}," remote",{"type":18,"tag":2079,"props":4218,"children":4219},{"style":2104},[4220],{"type":23,"value":4221},"          # 简要信息\n",{"type":18,"tag":2079,"props":4223,"children":4224},{"class":2081,"line":643},[4225,4229,4233,4238],{"type":18,"tag":2079,"props":4226,"children":4227},{"style":2086},[4228],{"type":23,"value":2089},{"type":18,"tag":2079,"props":4230,"children":4231},{"style":2092},[4232],{"type":23,"value":4216},{"type":18,"tag":2079,"props":4234,"children":4235},{"style":2098},[4236],{"type":23,"value":4237}," -v",{"type":18,"tag":2079,"props":4239,"children":4240},{"style":2104},[4241],{"type":23,"value":4242},"       # 详细信息\n",{"type":18,"tag":2079,"props":4244,"children":4245},{"class":2081,"line":2367},[4246],{"type":18,"tag":2079,"props":4247,"children":4249},{"emptyLinePlaceholder":4248},true,[4250],{"type":23,"value":4251},"\n",{"type":18,"tag":2079,"props":4253,"children":4254},{"class":2081,"line":2393},[4255],{"type":18,"tag":2079,"props":4256,"children":4257},{"style":2104},[4258],{"type":23,"value":4259},"# 添加别名\n",{"type":18,"tag":2079,"props":4261,"children":4262},{"class":2081,"line":3887},[4263,4267,4271,4275,4280],{"type":18,"tag":2079,"props":4264,"children":4265},{"style":2086},[4266],{"type":23,"value":2089},{"type":18,"tag":2079,"props":4268,"children":4269},{"style":2092},[4270],{"type":23,"value":4216},{"type":18,"tag":2079,"props":4272,"children":4273},{"style":2092},[4274],{"type":23,"value":2564},{"type":18,"tag":2079,"props":4276,"children":4277},{"style":2092},[4278],{"type":23,"value":4279}," 远程仓库别名",{"type":18,"tag":2079,"props":4281,"children":4282},{"style":2092},[4283],{"type":23,"value":4284}," 远程仓库ssh地址\n",{"type":18,"tag":2079,"props":4286,"children":4287},{"class":2081,"line":3906},[4288],{"type":18,"tag":2079,"props":4289,"children":4290},{"emptyLinePlaceholder":4248},[4291],{"type":23,"value":4251},{"type":18,"tag":2079,"props":4293,"children":4295},{"class":2081,"line":4294},8,[4296],{"type":18,"tag":2079,"props":4297,"children":4298},{"style":2104},[4299],{"type":23,"value":4300},"# 修改别名\n",{"type":18,"tag":2079,"props":4302,"children":4304},{"class":2081,"line":4303},9,[4305,4309,4313,4318,4323],{"type":18,"tag":2079,"props":4306,"children":4307},{"style":2086},[4308],{"type":23,"value":2089},{"type":18,"tag":2079,"props":4310,"children":4311},{"style":2092},[4312],{"type":23,"value":4216},{"type":18,"tag":2079,"props":4314,"children":4315},{"style":2092},[4316],{"type":23,"value":4317}," rename",{"type":18,"tag":2079,"props":4319,"children":4320},{"style":2092},[4321],{"type":23,"value":4322}," 原别名",{"type":18,"tag":2079,"props":4324,"children":4325},{"style":2092},[4326],{"type":23,"value":4327}," 新别名\n",{"type":18,"tag":2079,"props":4329,"children":4331},{"class":2081,"line":4330},10,[4332],{"type":18,"tag":2079,"props":4333,"children":4334},{"emptyLinePlaceholder":4248},[4335],{"type":23,"value":4251},{"type":18,"tag":2079,"props":4337,"children":4339},{"class":2081,"line":4338},11,[4340],{"type":18,"tag":2079,"props":4341,"children":4342},{"style":2104},[4343],{"type":23,"value":4344},"# 删除别名\n",{"type":18,"tag":2079,"props":4346,"children":4348},{"class":2081,"line":4347},12,[4349,4353,4357,4362],{"type":18,"tag":2079,"props":4350,"children":4351},{"style":2086},[4352],{"type":23,"value":2089},{"type":18,"tag":2079,"props":4354,"children":4355},{"style":2092},[4356],{"type":23,"value":4216},{"type":18,"tag":2079,"props":4358,"children":4359},{"style":2092},[4360],{"type":23,"value":4361}," remove",{"type":18,"tag":2079,"props":4363,"children":4364},{"style":2092},[4365],{"type":23,"value":4366}," 要删除的别名\n",{"type":18,"tag":2152,"props":4368,"children":4370},{"id":4369},"远程仓库与本地仓库之间的分支同步",[4371],{"type":23,"value":4369},{"type":18,"tag":19,"props":4373,"children":4374},{},[4375,4380],{"type":18,"tag":414,"props":4376,"children":4377},{},[4378],{"type":23,"value":4379},"push 命令",{"type":23,"value":1379},{"type":18,"tag":1474,"props":4382,"children":4384},{"code":4383},"  本地仓库                  远程仓库\n   \n   master --- git push ---> master\n                              |\n",[4385],{"type":18,"tag":777,"props":4386,"children":4387},{"__ignoreMap":8},[4388],{"type":23,"value":4383},{"type":18,"tag":19,"props":4390,"children":4391},{},[4392],{"type":23,"value":4393},"origin\u002Fmaster \u003C-- 自动同步 --------|",{"type":18,"tag":1474,"props":4395,"children":4397},{"code":4396,"language":2072,"meta":8,"className":2073,"style":8},"# 将本地的某个分支推送到指定仓库\ngit push -u 远程仓库别名 本地分支名\n",[4398],{"type":18,"tag":777,"props":4399,"children":4400},{"__ignoreMap":8},[4401,4409],{"type":18,"tag":2079,"props":4402,"children":4403},{"class":2081,"line":2082},[4404],{"type":18,"tag":2079,"props":4405,"children":4406},{"style":2104},[4407],{"type":23,"value":4408},"# 将本地的某个分支推送到指定仓库\n",{"type":18,"tag":2079,"props":4410,"children":4411},{"class":2081,"line":311},[4412,4416,4420,4424,4428],{"type":18,"tag":2079,"props":4413,"children":4414},{"style":2086},[4415],{"type":23,"value":2089},{"type":18,"tag":2079,"props":4417,"children":4418},{"style":2092},[4419],{"type":23,"value":3162},{"type":18,"tag":2079,"props":4421,"children":4422},{"style":2098},[4423],{"type":23,"value":3167},{"type":18,"tag":2079,"props":4425,"children":4426},{"style":2092},[4427],{"type":23,"value":4279},{"type":18,"tag":2079,"props":4429,"children":4430},{"style":2092},[4431],{"type":23,"value":4432}," 本地分支名\n",{"type":18,"tag":19,"props":4434,"children":4435},{},[4436],{"type":23,"value":4437},"细节说明：",{"type":18,"tag":406,"props":4439,"children":4440},{},[4441,4446,4482],{"type":18,"tag":410,"props":4442,"children":4443},{},[4444],{"type":23,"value":4445},"如果远程没有相关分支，则在远程创建同名分支",{"type":18,"tag":410,"props":4447,"children":4448},{},[4449,4451],{"type":23,"value":4450},"推送完成后，会在本地创建远程跟踪分支\n",{"type":18,"tag":406,"props":4452,"children":4453},{},[4454,4472,4477],{"type":18,"tag":410,"props":4455,"children":4456},{},[4457,4459,4464,4466],{"type":23,"value":4458},"跟踪分支自动命名：",{"type":18,"tag":414,"props":4460,"children":4461},{},[4462],{"type":23,"value":4463},"仓库别名\u002F分支名",{"type":23,"value":4465},"，如 ",{"type":18,"tag":777,"props":4467,"children":4469},{"className":4468},[],[4470],{"type":23,"value":4471},"origin\u002Fmaster",{"type":18,"tag":410,"props":4473,"children":4474},{},[4475],{"type":23,"value":4476},"跟踪分支是只读的，它的目的在于同步远程分支",{"type":18,"tag":410,"props":4478,"children":4479},{},[4480],{"type":23,"value":4481},"推送完成后，会自动同步远程跟踪分支",{"type":18,"tag":410,"props":4483,"children":4484},{},[4485,4487,4493,4495,4501,4503,4509],{"type":23,"value":4486},"由于使用了参数 ",{"type":18,"tag":777,"props":4488,"children":4490},{"className":4489},[],[4491],{"type":23,"value":4492},"-u",{"type":23,"value":4494}," 在跟踪分支创建后，会自动把本地分支 ",{"type":18,"tag":777,"props":4496,"children":4498},{"className":4497},[],[4499],{"type":23,"value":4500},"master",{"type":23,"value":4502}," 绑定到跟踪分支 ",{"type":18,"tag":777,"props":4504,"children":4506},{"className":4505},[],[4507],{"type":23,"value":4508},"origin\u002Fmain",{"type":18,"tag":406,"props":4510,"children":4511},{},[4512],{"type":18,"tag":410,"props":4513,"children":4514},{},[4515,4517,4522],{"type":23,"value":4516},"后续仅需要使用 ",{"type":18,"tag":777,"props":4518,"children":4520},{"className":4519},[],[4521],{"type":23,"value":1215},{"type":23,"value":4523}," 即可推送当前的 master 分支",{"type":18,"tag":19,"props":4525,"children":4526},{},[4527],{"type":23,"value":4528},"这样，就完成了本地到远程的同步",{"type":18,"tag":19,"props":4530,"children":4531},{},[4532,4537],{"type":18,"tag":414,"props":4533,"children":4534},{},[4535],{"type":23,"value":4536},"pull 命令",{"type":23,"value":1379},{"type":18,"tag":1474,"props":4539,"children":4541},{"code":4540},"  本地仓库                         远程仓库\n   \n   master\n     ∧\n     | git merge\n     |                      \n",[4542],{"type":18,"tag":777,"props":4543,"children":4544},{"__ignoreMap":8},[4545],{"type":23,"value":4540},{"type":18,"tag":19,"props":4547,"children":4548},{},[4549],{"type":23,"value":4550},"origin\u002Fmaster \u003C------ git fetch ------ master",{"type":18,"tag":743,"props":4552,"children":4553},{},[4554],{"type":18,"tag":410,"props":4555,"children":4556},{},[4557,4558,4564],{"type":23,"value":1703},{"type":18,"tag":777,"props":4559,"children":4561},{"className":4560},[],[4562],{"type":23,"value":4563},"git fetch",{"type":23,"value":4565}," 命令",{"type":18,"tag":1474,"props":4567,"children":4569},{"code":4568,"language":2072,"meta":8,"className":2073,"style":8},"git fetch 远程仓库别名 远程分支名\n",[4570],{"type":18,"tag":777,"props":4571,"children":4572},{"__ignoreMap":8},[4573],{"type":18,"tag":2079,"props":4574,"children":4575},{"class":2081,"line":2082},[4576,4580,4585,4589],{"type":18,"tag":2079,"props":4577,"children":4578},{"style":2086},[4579],{"type":23,"value":2089},{"type":18,"tag":2079,"props":4581,"children":4582},{"style":2092},[4583],{"type":23,"value":4584}," fetch",{"type":18,"tag":2079,"props":4586,"children":4587},{"style":2092},[4588],{"type":23,"value":4279},{"type":18,"tag":2079,"props":4590,"children":4591},{"style":2092},[4592],{"type":23,"value":4593}," 远程分支名\n",{"type":18,"tag":743,"props":4595,"children":4596},{"start":311},[4597],{"type":18,"tag":410,"props":4598,"children":4599},{},[4600],{"type":23,"value":4601},"使用 git merge 命令合并分支",{"type":18,"tag":1474,"props":4603,"children":4605},{"code":4604,"language":2072,"meta":8,"className":2073,"style":8},"# 确保当前在对应的分支上\ngit merge 本地跟踪分支名\n",[4606],{"type":18,"tag":777,"props":4607,"children":4608},{"__ignoreMap":8},[4609,4617],{"type":18,"tag":2079,"props":4610,"children":4611},{"class":2081,"line":2082},[4612],{"type":18,"tag":2079,"props":4613,"children":4614},{"style":2104},[4615],{"type":23,"value":4616},"# 确保当前在对应的分支上\n",{"type":18,"tag":2079,"props":4618,"children":4619},{"class":2081,"line":311},[4620,4624,4629],{"type":18,"tag":2079,"props":4621,"children":4622},{"style":2086},[4623],{"type":23,"value":2089},{"type":18,"tag":2079,"props":4625,"children":4626},{"style":2092},[4627],{"type":23,"value":4628}," merge",{"type":18,"tag":2079,"props":4630,"children":4631},{"style":2092},[4632],{"type":23,"value":4633}," 本地跟踪分支名\n",{"type":18,"tag":19,"props":4635,"children":4636},{},[4637],{"type":23,"value":4638},"这样，就完成了远程到本地的同步",{"type":18,"tag":19,"props":4640,"children":4641},{},[4642],{"type":23,"value":4643},"使用 git pull 命令，可以一步替代上面的两步操作",{"type":18,"tag":1474,"props":4645,"children":4647},{"code":4646,"language":2072,"meta":8,"className":2073,"style":8},"git pull 远程仓库 远程分支\n",[4648],{"type":18,"tag":777,"props":4649,"children":4650},{"__ignoreMap":8},[4651],{"type":18,"tag":2079,"props":4652,"children":4653},{"class":2081,"line":2082},[4654,4658,4663,4668],{"type":18,"tag":2079,"props":4655,"children":4656},{"style":2086},[4657],{"type":23,"value":2089},{"type":18,"tag":2079,"props":4659,"children":4660},{"style":2092},[4661],{"type":23,"value":4662}," pull",{"type":18,"tag":2079,"props":4664,"children":4665},{"style":2092},[4666],{"type":23,"value":4667}," 远程仓库",{"type":18,"tag":2079,"props":4669,"children":4670},{"style":2092},[4671],{"type":23,"value":4672}," 远程分支\n",{"type":18,"tag":19,"props":4674,"children":4675},{},[4676,4681],{"type":18,"tag":414,"props":4677,"children":4678},{},[4679],{"type":23,"value":4680},"clone 命令",{"type":23,"value":1379},{"type":18,"tag":19,"props":4683,"children":4684},{},[4685,4687,4693],{"type":23,"value":4686},"当本地没有工程时，可以使用 ",{"type":18,"tag":777,"props":4688,"children":4690},{"className":4689},[],[4691],{"type":23,"value":4692},"git clone",{"type":23,"value":4694}," 操作快速完成远程仓库的下载",{"type":18,"tag":1474,"props":4696,"children":4698},{"code":4697,"language":2072,"meta":8,"className":2073,"style":8},"git clone [-b 分支名] 远程仓库地址 [本地想要保存的文件夹]\n",[4699],{"type":18,"tag":777,"props":4700,"children":4701},{"__ignoreMap":8},[4702],{"type":18,"tag":2079,"props":4703,"children":4704},{"class":2081,"line":2082},[4705,4709,4714,4719,4724,4729],{"type":18,"tag":2079,"props":4706,"children":4707},{"style":2086},[4708],{"type":23,"value":2089},{"type":18,"tag":2079,"props":4710,"children":4711},{"style":2092},[4712],{"type":23,"value":4713}," clone",{"type":18,"tag":2079,"props":4715,"children":4716},{"style":2142},[4717],{"type":23,"value":4718}," [-b ",{"type":18,"tag":2079,"props":4720,"children":4721},{"style":2092},[4722],{"type":23,"value":4723},"分支名]",{"type":18,"tag":2079,"props":4725,"children":4726},{"style":2092},[4727],{"type":23,"value":4728}," 远程仓库地址",{"type":18,"tag":2079,"props":4730,"children":4731},{"style":2142},[4732],{"type":23,"value":4733}," [本地想要保存的文件夹]\n",{"type":18,"tag":2152,"props":4735,"children":4737},{"id":4736},"同步的三种情况",[4738],{"type":23,"value":4736},{"type":18,"tag":743,"props":4740,"children":4741},{},[4742,4747,4752],{"type":18,"tag":410,"props":4743,"children":4744},{},[4745],{"type":23,"value":4746},"情况一：远程快进",{"type":18,"tag":410,"props":4748,"children":4749},{},[4750],{"type":23,"value":4751},"情况二：本地快进",{"type":18,"tag":410,"props":4753,"children":4754},{},[4755,4757],{"type":23,"value":4756},"情况三：出现冲突\n",{"type":18,"tag":743,"props":4758,"children":4759},{},[4760,4771,4784,4789,4800],{"type":18,"tag":410,"props":4761,"children":4762},{},[4763,4765],{"type":23,"value":4764},"获取远程代码：",{"type":18,"tag":777,"props":4766,"children":4768},{"className":4767},[],[4769],{"type":23,"value":4770},"git fetch orgin master",{"type":18,"tag":410,"props":4772,"children":4773},{},[4774,4776,4782],{"type":23,"value":4775},"本地进行合并，",{"type":18,"tag":777,"props":4777,"children":4779},{"className":4778},[],[4780],{"type":23,"value":4781},"git merge origin\u002Fmaster",{"type":23,"value":4783},"，报错冲突",{"type":18,"tag":410,"props":4785,"children":4786},{},[4787],{"type":23,"value":4788},"手动解决冲突",{"type":18,"tag":410,"props":4790,"children":4791},{},[4792,4794],{"type":23,"value":4793},"本地提交一次，",{"type":18,"tag":777,"props":4795,"children":4797},{"className":4796},[],[4798],{"type":23,"value":4799},"git commit -m \"xxxxx\"",{"type":18,"tag":410,"props":4801,"children":4802},{},[4803,4805],{"type":23,"value":4804},"本地推送到远程，",{"type":18,"tag":777,"props":4806,"children":4808},{"className":4807},[],[4809],{"type":23,"value":4810},"git push origin master",{"type":18,"tag":2152,"props":4812,"children":4814},{"id":4813},"简单总结",[4815],{"type":23,"value":4813},{"type":18,"tag":743,"props":4817,"children":4818},{},[4819,4824,4829],{"type":18,"tag":410,"props":4820,"children":4821},{},[4822],{"type":23,"value":4823},"正常推送拉取，没问题什么也不管",{"type":18,"tag":410,"props":4825,"children":4826},{},[4827],{"type":23,"value":4828},"推送报错，进入第 3 步",{"type":18,"tag":410,"props":4830,"children":4831},{},[4832],{"type":23,"value":4833},"拉取有冲突，解决冲突重新提交，然后进入第 2 步",{"type":18,"tag":389,"props":4835,"children":4837},{"id":4836},"github-flow",[4838],{"type":23,"value":4839},"github flow",{"type":18,"tag":2152,"props":4841,"children":4843},{"id":4842},"完整流程",[4844],{"type":23,"value":4842},{"type":18,"tag":1474,"props":4846,"children":4848},{"code":4847},"sequenceDiagram\n    participant A AS 开发者\n    participant B AS 本地仓库\n    participant C AS 远程仓库\n    participant D AS 管理员\n    \n    A ->> B: 1. 拉取：master 分支\n    B --> C: 从远程同步最新代码 \n    A ->> B: 2. 开发：切换分支，多次提交\n    A ->> C: 3. 推送：推送开发分支\n    A ->> C: 4. 创建PR：base master\n    D ->> C: 5. review：代码审查\n    D ->> C: 6. 提交：提交合并到 master 分支\n    D ->> C: 7. 删除：删除开发分支\n",[4849],{"type":18,"tag":777,"props":4850,"children":4851},{"__ignoreMap":8},[4852],{"type":23,"value":4847},{"type":18,"tag":2152,"props":4854,"children":4856},{"id":4855},"开发者规范",[4857],{"type":23,"value":4855},{"type":18,"tag":743,"props":4859,"children":4860},{},[4861,4866],{"type":18,"tag":410,"props":4862,"children":4863},{},[4864],{"type":23,"value":4865},"master 分支只读",{"type":18,"tag":410,"props":4867,"children":4868},{},[4869],{"type":23,"value":4870},"基于最新的提交进行开发",{"type":18,"tag":2152,"props":4872,"children":4874},{"id":4873},"管理员规范",[4875],{"type":23,"value":4873},{"type":18,"tag":743,"props":4877,"children":4878},{},[4879,4884],{"type":18,"tag":410,"props":4880,"children":4881},{},[4882],{"type":23,"value":4883},"master 分支只能通过 PR 来修改",{"type":18,"tag":410,"props":4885,"children":4886},{},[4887],{"type":23,"value":4888},"PR 永远无冲突",{"type":18,"tag":1523,"props":4890,"children":4891},{},[4892],{"type":23,"value":4893},"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);}",{"title":8,"searchDepth":311,"depth":311,"links":4895},[4896,4897,4898,4899,4900,4901,4902,4903,4904,4905],{"id":1966,"depth":311,"text":1966},{"id":1999,"depth":311,"text":1999},{"id":2061,"depth":311,"text":2061},{"id":2066,"depth":311,"text":2066},{"id":2419,"depth":311,"text":2419},{"id":2454,"depth":311,"text":2457},{"id":2472,"depth":311,"text":2472},{"id":3276,"depth":311,"text":3276},{"id":3999,"depth":311,"text":3999},{"id":4836,"depth":311,"text":4839},"content:it:002.md","it\u002F002.md","it\u002F002",{"_path":4910,"_dir":4911,"_draft":7,"_partial":7,"_locale":8,"title":4912,"description":4913,"date":11,"tags":4914,"body":4917,"_type":313,"_id":5226,"_source":315,"_file":5227,"_stem":5228,"_extension":318},"\u002Flife\u002F001","life","痛风饮食建议","通风了，饮食可得注意好了",[4915,4916],"健康","通风",{"type":15,"children":4918,"toc":5219},[4919,4927,4933,5006,5010,5016,5067,5070,5076,5125,5128,5134,5164,5167,5173],{"type":18,"tag":370,"props":4920,"children":4921},{},[4922],{"type":18,"tag":19,"props":4923,"children":4924},{},[4925],{"type":23,"value":4926},"请为痛风患者推荐一份饮食建议",{"type":18,"tag":460,"props":4928,"children":4930},{"id":4929},"_1-坚决不吃",[4931],{"type":23,"value":4932},"1. 坚决不吃",{"type":18,"tag":406,"props":4934,"children":4935},{},[4936,4946,4956,4966,4976,4986,4996],{"type":18,"tag":410,"props":4937,"children":4938},{},[4939,4944],{"type":18,"tag":414,"props":4940,"children":4941},{},[4942],{"type":23,"value":4943},"动物内脏",{"type":23,"value":4945},"：动物的肝、胃、肠、心脏",{"type":18,"tag":410,"props":4947,"children":4948},{},[4949,4954],{"type":18,"tag":414,"props":4950,"children":4951},{},[4952],{"type":23,"value":4953},"海鲜水产",{"type":23,"value":4955},"：鱼类、虾、螃蟹、贝壳等",{"type":18,"tag":410,"props":4957,"children":4958},{},[4959,4964],{"type":18,"tag":414,"props":4960,"children":4961},{},[4962],{"type":23,"value":4963},"酒类",{"type":23,"value":4965},"：啤酒、黄酒、白酒、红酒",{"type":18,"tag":410,"props":4967,"children":4968},{},[4969,4974],{"type":18,"tag":414,"props":4970,"children":4971},{},[4972],{"type":23,"value":4973},"饮品",{"type":23,"value":4975},"：奶茶、果汁 、甜饮料（像可乐、雪碧、芬达、美年达、橙汁等）",{"type":18,"tag":410,"props":4977,"children":4978},{},[4979,4984],{"type":18,"tag":414,"props":4980,"children":4981},{},[4982],{"type":23,"value":4983},"蔬菜",{"type":23,"value":4985},"：腌制菜、紫菜、芦笋、黄豆芽，绿豆芽、腐竹、豆皮、豆干、蘑菇、香菇、豌豆、韭菜、菠菜（少吃）、杏鲍菇、菠菜、黄豆、绿豆、黑豆",{"type":18,"tag":410,"props":4987,"children":4988},{},[4989,4994],{"type":18,"tag":414,"props":4990,"children":4991},{},[4992],{"type":23,"value":4993},"一般食物",{"type":23,"value":4995},"：肉汤、腊肉、火锅",{"type":18,"tag":410,"props":4997,"children":4998},{},[4999,5004],{"type":18,"tag":414,"props":5000,"children":5001},{},[5002],{"type":23,"value":5003},"零食",{"type":23,"value":5005},"：糖果、糕点、甜点心",{"type":18,"tag":5007,"props":5008,"children":5009},"hr",{},[],{"type":18,"tag":460,"props":5011,"children":5013},{"id":5012},"_2-适当吃别太多别太频",[5014],{"type":23,"value":5015},"2. 适当吃，别太多、别太频",{"type":18,"tag":406,"props":5017,"children":5018},{},[5019,5028,5038,5048,5058],{"type":18,"tag":410,"props":5020,"children":5021},{},[5022,5026],{"type":18,"tag":414,"props":5023,"children":5024},{},[5025],{"type":23,"value":4993},{"type":23,"value":5027},"：豆腐、菜花、西蓝花",{"type":18,"tag":410,"props":5029,"children":5030},{},[5031,5036],{"type":18,"tag":414,"props":5032,"children":5033},{},[5034],{"type":23,"value":5035},"调味品",{"type":23,"value":5037},"：少油、少盐、辣椒、花椒、鸡精，芥末、生姜、甜酱油、蚝油",{"type":18,"tag":410,"props":5039,"children":5040},{},[5041,5046],{"type":18,"tag":414,"props":5042,"children":5043},{},[5044],{"type":23,"value":5045},"红肉",{"type":23,"value":5047},"：猪肉、牛肉、羊肉、鸡胸肉，偶尔吃点，别吃太多，吃的时候以清蒸或者水煮为主，而不要油炸、烧烤、煲汤，只吃肉不喝汤",{"type":18,"tag":410,"props":5049,"children":5050},{},[5051,5056],{"type":18,"tag":414,"props":5052,"children":5053},{},[5054],{"type":23,"value":5055},"水果",{"type":23,"value":5057},"：苹果、橙子、桂圆、香蕉、杨梅、石榴、荔枝",{"type":18,"tag":410,"props":5059,"children":5060},{},[5061,5065],{"type":18,"tag":414,"props":5062,"children":5063},{},[5064],{"type":23,"value":5003},{"type":23,"value":5066},"：花生、葵花籽",{"type":18,"tag":5007,"props":5068,"children":5069},{},[],{"type":18,"tag":460,"props":5071,"children":5073},{"id":5072},"_3-正常吃",[5074],{"type":23,"value":5075},"3. 正常吃",{"type":18,"tag":406,"props":5077,"children":5078},{},[5079,5089,5098,5107,5116],{"type":18,"tag":410,"props":5080,"children":5081},{},[5082,5087],{"type":18,"tag":414,"props":5083,"children":5084},{},[5085],{"type":23,"value":5086},"日常以粗粮为主",{"type":23,"value":5088},"：玉米、大米、面粉、红薯、小麦、燕麦、黑芝麻、面包、馒头、稀饭、鸡蛋、猪血、海参、海蜇皮、皮蛋",{"type":18,"tag":410,"props":5090,"children":5091},{},[5092,5096],{"type":18,"tag":414,"props":5093,"children":5094},{},[5095],{"type":23,"value":4983},{"type":23,"value":5097},"：黄瓜、茄子、莴笋、丝瓜、土豆、黑木耳、黑芝麻、白菜、娃娃菜、包菜、南瓜、白萝卜、胡萝卜、青椒、洋葱、山药、土豆、粉丝、大蒜、生菜、海带",{"type":18,"tag":410,"props":5099,"children":5100},{},[5101,5105],{"type":18,"tag":414,"props":5102,"children":5103},{},[5104],{"type":23,"value":5055},{"type":23,"value":5106},"：杨桃、西瓜、西红柿、桃子、梨、草莓、橘子、李子、菠萝",{"type":18,"tag":410,"props":5108,"children":5109},{},[5110,5114],{"type":18,"tag":414,"props":5111,"children":5112},{},[5113],{"type":23,"value":4973},{"type":23,"value":5115},"：低脂或脱脂的牛奶、酸奶、豆浆、酸奶、奶酪、不加糖的黑咖啡、淡茶",{"type":18,"tag":410,"props":5117,"children":5118},{},[5119,5123],{"type":18,"tag":414,"props":5120,"children":5121},{},[5122],{"type":23,"value":5003},{"type":23,"value":5124},"：杏仁、核桃、苏打饼干、碱性食物",{"type":18,"tag":5007,"props":5126,"children":5127},{},[],{"type":18,"tag":460,"props":5129,"children":5131},{"id":5130},"_4-鼓励多吃",[5132],{"type":23,"value":5133},"4. 鼓励多吃",{"type":18,"tag":406,"props":5135,"children":5136},{},[5137,5146,5155],{"type":18,"tag":410,"props":5138,"children":5139},{},[5140,5144],{"type":18,"tag":414,"props":5141,"children":5142},{},[5143],{"type":23,"value":4983},{"type":23,"value":5145},"：芹菜、苦瓜、冬瓜、茼蒿",{"type":18,"tag":410,"props":5147,"children":5148},{},[5149,5153],{"type":18,"tag":414,"props":5150,"children":5151},{},[5152],{"type":23,"value":5055},{"type":23,"value":5154},"：葡萄、柚子、蓝莓、樱桃",{"type":18,"tag":410,"props":5156,"children":5157},{},[5158,5162],{"type":18,"tag":414,"props":5159,"children":5160},{},[5161],{"type":23,"value":4973},{"type":23,"value":5163},"：多喝水，保持每天喝水 2 升以上、苏打水",{"type":18,"tag":5007,"props":5165,"children":5166},{},[],{"type":18,"tag":460,"props":5168,"children":5170},{"id":5169},"_5-生活习惯建议",[5171],{"type":23,"value":5172},"5. 生活习惯建议",{"type":18,"tag":406,"props":5174,"children":5175},{},[5176,5181,5186,5191],{"type":18,"tag":410,"props":5177,"children":5178},{},[5179],{"type":23,"value":5180},"保持体重，不要肥胖",{"type":18,"tag":410,"props":5182,"children":5183},{},[5184],{"type":23,"value":5185},"少食多动，饭后散步",{"type":18,"tag":410,"props":5187,"children":5188},{},[5189],{"type":23,"value":5190},"晚上九点以后少吃东西，睡前不吃东西",{"type":18,"tag":410,"props":5192,"children":5193},{},[5194,5199,5200,5205,5206,5211,5212,5217],{"type":18,"tag":414,"props":5195,"children":5196},{},[5197],{"type":23,"value":5198},"多喝水，少喝汤",{"type":23,"value":629},{"type":18,"tag":414,"props":5201,"children":5202},{},[5203],{"type":23,"value":5204},"多清蒸，少油炸，多水煮，少烧烤",{"type":23,"value":629},{"type":18,"tag":414,"props":5207,"children":5208},{},[5209],{"type":23,"value":5210},"多碱性，少酸性",{"type":23,"value":629},{"type":18,"tag":414,"props":5213,"children":5214},{},[5215],{"type":23,"value":5216},"多吃菜，少吃饭",{"type":23,"value":5218},"*",{"title":8,"searchDepth":311,"depth":311,"links":5220},[5221,5222,5223,5224,5225],{"id":4929,"depth":643,"text":4932},{"id":5012,"depth":643,"text":5015},{"id":5072,"depth":643,"text":5075},{"id":5130,"depth":643,"text":5133},{"id":5169,"depth":643,"text":5172},"content:life:001.md","life\u002F001.md","life\u002F001",1781529092106]