[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"categories":3,"article-12":51,"comments-12":110},[4,10,16,22,28,34,40,46],{"_id":5,"id":6,"created_at":7,"updated_at":7,"name":8,"description":8,"cover":9},"6a294c7a9fbda20eb7c62dd5",1,"2022-12-08T13:59:08.000Z","域.业务领域","\u002Fblog\u002Flighthouse.jpeg",{"_id":11,"id":12,"created_at":13,"updated_at":14,"name":15,"description":15,"cover":9},"6a294c7a9fbda20eb7c62dd6",2,"2022-12-08T13:59:56.000Z","2022-12-08T14:02:20.000Z","术.解决方案",{"_id":17,"id":18,"created_at":19,"updated_at":20,"name":21,"description":21,"cover":9},"6a294c7a9fbda20eb7c62dd7",3,"2022-12-08T14:00:22.000Z","2022-12-08T14:02:17.000Z","技.技术研究",{"_id":23,"id":24,"created_at":25,"updated_at":26,"name":27,"description":27,"cover":9},"6a294c7a9fbda20eb7c62dd8",4,"2022-12-08T14:00:33.000Z","2022-12-08T14:02:14.000Z","阵.技术应用",{"_id":29,"id":30,"created_at":31,"updated_at":32,"name":33,"description":33,"cover":9},"6a294c7a9fbda20eb7c62dd9",5,"2022-12-08T14:01:04.000Z","2022-12-08T14:02:12.000Z","法.手段方法 ",{"_id":35,"id":36,"created_at":37,"updated_at":38,"name":39,"description":39,"cover":9},"6a294c7a9fbda20eb7c62dda",6,"2022-12-08T14:01:15.000Z","2022-12-08T14:02:09.000Z","理.理论学习",{"_id":41,"id":42,"created_at":43,"updated_at":44,"name":45,"description":45,"cover":9},"6a294c7a9fbda20eb7c62ddb",7,"2022-12-08T14:01:24.000Z","2022-12-08T14:02:06.000Z","器.工具使用",{"_id":47,"id":48,"created_at":49,"updated_at":49,"name":50,"description":50,"cover":9},"6a294c7a9fbda20eb7c62ddc",8,"2022-12-08T14:01:53.000Z","杂.杂七杂八",{"_id":52,"id":53,"created_at":54,"updated_at":55,"title":56,"content":57,"description":56,"cover":58,"created_date":59,"category_id":18,"tag_ids":60,"author_ids":61,"public":6,"status":6,"star":6,"like":62,"views":63,"category":64,"tags":65,"authors":78,"related":85},"6a294c7a9fbda20eb7c62e0c",12,"2022-12-11T08:37:00.000Z","2026-06-13T09:52:36.433Z","git 使用指南","## git 使用指南\n```\ngit log\ngit log --pretty=oneline\n\u002F\u002F git log 只可忘后看，不可以往前看，所有一但回退版本，前面的将看不到\n```\ngit 当前版本是 HEAD，上一个版本是HEAD^，上上个版本是HEAD^^..., HEAD~100\n\ngit reset --hard HEAD^\n\ngit reset --hard [版本号] \u002F\u002F 这种办法也可以，而且版本号不必要写全，前几位就可以了，git 会自动查找\n\n找回 commit id：git reflog\n\n工作区：git init的文件夹\n版本库：.git 目录\n暂存区：版本库中的 stage 目录\n\ngit diff HEAD -- readme.txt 查看工作去和版本库区别\n\n不执行 git add 到暂存区，那就不会加入到 commit 中\n\ngit checkout -- [文件] \n回到最近一次 git commit 或 git add（--很重要，不然就是切换版本了），会删除修改的内容,只是对工作区修改，不会影响暂存区\n\ngit reset HEAD [file] 把暂存区的修改撤销掉，重新放回工作区，不会删除修改的内容，只是放回工作区，会影响暂存区\n\ngit rm 用于删除一个文件\n\n在用户主目录（~）下找 .ssh 目录，没有的话自己用下面方法生成\n\n公钥：\n```shell\ncat ~\u002F.ssh\u002Fid_rsa.pub\n```\n\n生成 SSH Key： ```ssh-keygen -t rsa -C \"youremail@example.com\"```\nid_rsa：私钥（不能泄露出去）\nid_rsa.pub：公钥（github用）\n\ngithub 支持多个key，可以多台电脑办公\n\ngit remote add origin git@github.com:michaelliao\u002Flearngit.git \u002F\u002F 添加远程仓库\n\ngit push -u origin master \u002F\u002F 由于远程库是空的，我们第一次推送master分支时，加上了-u参数，Git不但会把本地的master分支内容推送的远程新的master分支，还会把本地的master分支和远程的master分支关联起来，在以后的推送或者拉取时就可以简化命令。\n\nSSH警告\n当你第一次使用Git的clone或者push命令连接GitHub时，会得到一个警告：\n```\nThe authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.\nRSA key fingerprint is xx.xx.xx.xx.xx.\nAre you sure you want to continue connecting (yes\u002Fno)?\n```\n这是因为Git使用SSH连接，而SSH连接在第一次验证GitHub服务器的Key时，需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器，输入yes回车即可。\n\n这个警告只会出现一次，后面的操作就不会有任何警告了。\n\ngit 支持多种协议，包括 http，ssh 但 ssh 协议速度最快\n\n查看分支：git branch\n\n创建分支：git branch \u003Cname>\n\n切换分支：git checkout \u003Cname>或者git switch \u003Cname>\n\n创建+切换分支：git checkout -b \u003Cname>或者git switch -c \u003Cname>\n\n合并某分支到当前分支：git merge \u003Cname>\n\n删除分支：git branch -d \u003Cname>\n\n查看分支合并情况\ngit log --graph --pretty=oneline --abbrev-commit\n\ngit 合并分支时，如果可能，git 会采用 Fast forward 模式，但这种模式，删除分支后，会丢失分支信息，如果强制禁用 Fast forward 模式， Git就会在merge时生成一个新的commit，这样，从分支历史上就可以看出分支信息，\n强制使用 Fast forward：\ngit merge --no-ff -m \"merge with no-ff\" dev\n\ngit stash 保存工作区修改\ngit stash pop 恢复工作区，并删保存的工作区修改\ngit stash apply stash@{id} 恢复指定暂存，但不删除\ngit stash drop stash@{id} 删除指定暂存\ngit stash list 显示当前的暂存列表\n\ngit cherry-pick \u003Ccommit> 复制某次 commit 到当前分支\n\ngit branch -d \u003Cname> 删除合并过的分支\ngit branch -D \u003Cname> 强制删除分支\n\ngit remote 显示远程仓库信息\ngit remote -v 显示更详细的远程仓库信息\n\n注意点：\ngit push origin【这里是本地分支】\n\ngit clone 拉取仓库默认只能看到 master 分支\n\ngit checkou -b dev origin\u002Fdev\n创建远程分支 dev 到 本地\n\n设置本地分支 与 远程分支的链接\n```\ngit branch --set-upstream-to=origin\u002Fdev dev\nBranch 'dev' set up to track remote branch 'dev' from 'origin'.\n```\n\ngit rebase 操作可以把本地未push的分叉提交历史整理成直线\n\nrebase 的目的是使我们在查看历史提交的变化时更容易，因为分叉的提交需要三方对比\n\ngit tag \u003Ctagname> 用于新建一个标签，默认为HEAD，也可以指定一个commit id；\ngit tag -a \u003Ctagneme> -m \"blablabla...\" 可以指定标签信息；\ngit tag 可以查看所有标签\n\ngit push origin \u003Ctagname> 推送一个本地标签\ngit push origin --tags 可以推送全部未推送过的本地标签\ngit tag -d \u003Ctagname> 可以删除一个本地标签\ngit push origin :refs\u002Ftags\u002F\u003Ctagname> 可以删除一个远程标签\n\n在github上，可以任意fork开源仓库\n自己拥有fork后的仓库的读写权限\n可以推送pull request给官方仓库来贡献代码\n\n删除本地远程仓库链接\ngit remote rm origin\n\ngit 给远程库起的默认名称是origin\n\ngit config --global color.ui true 让 git 显示颜色\n\n.gitignore 忽略文件清单（放在根目录下）\n\n强制添加到暂存区：\ngit add -f \u003Cfilename>\n\n检查文件有没有被忽略\ngit check-ignore -v \u003Cfilename>\n\n仓库的 git 配置文件在 .git\u002Fconfig 文件中\n\n当前用户git配置文件放在用户主目录的一个隐藏文件 .gitconfig 中\n\ngit 配置别名\ngit config --global alias.st status\ngit config --global alias.co checkout\ngit config --global alias.ci commit\ngit config --global alias.br branch\ngit config --global alias.unstage 'reset HEAD'\ngit config --global alias.last 'log -1'\ngit config --global alias.lg \"log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)\u003C%an>%Creset' --abbrev-commit\"\n\ngit log -p -1\n展开显示每次提交的内容差异\n\ngit log --stat\n仅显示简要的增改行数统计\n\n放弃本次修改\n\n\ngit fetch\n更新git remote 中所有的远程仓库所包含分支的最新commit-id，将其记录到.git\u002FFETCH_HEAD文件中\nFETCH_HEAD：是一个版本链接，记录在本地的一个文件中，指向着目前已经从远程仓库取下来的分支末端版本","","2015-12-21T16:00:00.000Z",[6,12,42],[6],0,78,{"_id":17,"id":18,"created_at":19,"updated_at":20,"name":21,"description":21,"cover":9},[66,70,74],{"_id":67,"id":6,"created_at":68,"updated_at":68,"name":69},"6a294c7a9fbda20eb7c62de1","2022-12-08T14:04:04.000Z","工具方法",{"_id":71,"id":12,"created_at":72,"updated_at":72,"name":73},"6a294c7a9fbda20eb7c62de2","2022-12-08T14:04:09.000Z","工具收录",{"_id":75,"id":42,"created_at":76,"updated_at":76,"name":77},"6a294c7a9fbda20eb7c62de7","2022-12-08T14:05:07.000Z","学习记录",[79],{"name":80,"avatar":81,"email":82,"description":83,"role":84,"id":6},"Gavin","\u002Fblog\u002FWechatIMG133.jpeg","zzlwte@gmail.com","写代码的,也撸铁。白天搬 JavaScript 砖,晚上举铁,偶尔在这里写写技术沉淀和生活随想。",32,[86,90,93,97,101,105],{"id":6,"title":87,"cover":88,"created_date":89},"Docker","\u002Fblog\u002Fimg\u002F%E6%88%AA%E5%B1%8F2020-03-08%E4%B8%8B%E5%8D%889.34.21.png","2022-12-08T22:19:02.000Z",{"id":30,"title":91,"cover":58,"created_date":92},"记录 oh-my-zsh 问题","2021-06-30T16:00:00.000Z",{"id":94,"title":95,"cover":58,"created_date":96},10,"vim 窗口管理","2020-12-14T16:00:00.000Z",{"id":98,"title":99,"cover":58,"created_date":100},11,"Vim 问题集合","2020-10-20T00:00:00.000Z",{"id":102,"title":103,"cover":58,"created_date":104},9,"Vim 前端插件整理","2020-10-13T00:00:00.000Z",{"id":106,"title":107,"cover":108,"created_date":109},17,"Typescript 快速入门","\u002FFiLpf0uKN-F6iOMF7W7Ffs2mZtfk","2019-12-27T14:04:00.000Z",[]]