[{"data":1,"prerenderedAt":127},["ShallowReactive",2],{"blog-\u002Fblog\u002Fgit_basic_commands":3},{"id":4,"title":5,"body":6,"category":115,"cover":116,"csdn":116,"date":117,"description":5,"draft":118,"extension":119,"meta":120,"navigation":121,"path":122,"seo":123,"stem":124,"tags":125,"updated":116,"__hash__":126},"blog\u002Fblog\u002Fgit_basic_commands.md","git 基本命令",{"type":7,"value":8,"toc":112},"minimark",[9,14,18,29,35,38,44,50,56,59,62,68,71,77,80,83,93,98,103,106],[10,11,13],"h6",{"id":12},"记录一下git-学习常用命令以防用时遗忘","记录一下git 学习常用命令，以防用时遗忘。",[15,16,17],"p",{},"安装后简单配置",[19,20,25],"pre",{"className":21,"code":23,"language":24},[22],"language-text","    git --global uname  'name'\n    git --global email  'example@icloud.com'\n","text",[26,27,23],"code",{"__ignoreMap":28},"",[19,30,33],{"className":31,"code":32,"language":24},[22],"    git add demo\n    git commit -m 'add demo'\n    git log --oneline\n    git log --pretty=oneline\n    git reset --hard HEAD^  上一个版本   \n                     HEAD^^\n                     HEAD~100\n    Git提供了一个命令git reflog用来记录你的每一次命令\n",[26,34,32],{"__ignoreMap":28},[15,36,37],{},".git 文件目录",[19,39,42],{"className":40,"code":41,"language":24},[22],"     COMMIT_EDITMSG\n     config 当前 git 的配置文件\n     description （仓库的描述信息文件）\n     HEAD （指向当前所在的分支），例如当前在 develop 分支，实际指向地址是 refs\u002Fheads\u002Fdevelop\n     hooks [文件夹]\n     index\n     info [文件夹]\n     logs [文件夹]\n     objects [文件夹] （存放所有的 git 对象，对象哈希值前 2 位为文件夹名称，后 38 位为对象文件名, \n        可通过 git cat-file -p 命令，拼接文件夹名称+文件名查看）\n     ORIG_HEAD\n     refs [文件夹]\n      • heads （存放当前项目的所有分支）\n      • tags (存放的当前项目的所有标签，又叫做里程碑)\n\n",[26,43,41],{"__ignoreMap":28},[19,45,48],{"className":46,"code":47,"language":24},[22],"cat 命令， 功能：用来显示文件。 例如 cat text.md 显示 text.md 文件的内容\nls -al 命令， 表示列出当前目录下的所有文件（包括隐藏文件）\ngit cat-file -t 命令 ， 查看 git 对象的类型\ngit cat-file -p 命令， 查看 git 对象的内容\ngit cat-file -s 命令， 查看 git 对象的大小\n\n\n",[26,49,47],{"__ignoreMap":28},[19,51,54],{"className":52,"code":53,"language":24},[22],"git checkout commitId：会出现分离头指针的情况，这种情况下比较危险，\n因为这个时候你提交的代码没有和分支对应起来，当切换到其他分支的时候(比如master分支)，容易丢失代码；\n但是分离头指针也有它的应用场景，就是在自己做尝试或者测试的时候可以分离头指针，当尝试完毕没有用的时候可以随时丢弃，\n但是如果觉得尝试有用，那么可以新建一个分支，使用 git branch \u003C新分支的名称> commitId\n",[26,55,53],{"__ignoreMap":28},[15,57,58],{},"^ ~ 都是父节点，区别是跟随数字时候，^2 是第二个父节点，而~2是父节点的父节点",[15,60,61],{},"删除分支",[19,63,66],{"className":64,"code":65,"language":24},[22],"    git branch -d commitid \u002F 'message'\n",[26,67,65],{"__ignoreMap":28},[15,69,70],{},"1、git fetch 和 git pull 的区别\n在执行 git pull 后，代码会自动 merge 到本地的分支中，而 git fetch 会忽略掉这个 merge 操作，因此简单来说：",[19,72,75],{"className":73,"code":74,"language":24},[22],"    git pull = git fetch + git merge\n",[26,76,74],{"__ignoreMap":28},[15,78,79],{},"2、git pull 和 git pull --rebase 区别\ngit pull 命令默认包含了一个 --merge 参数，因此二者的区别其实就是 merge 和 rebase 的区别。",[15,81,82],{},"merge 会创建一个新的 commit，如果合并时遇到了冲突，需要解决冲突后重新 commit。",[15,84,85,88],{},[26,86,87],{},"Merge",[89,90],"img",{"alt":91,"src":92},"在这里插入图片描述","https:\u002F\u002Fimg.moooodapp.com\u002Fweb_hongweizhu_com_blog\u002Fceceb38cb30723556976d3a156dddc6a.png",[15,94,95],{},[26,96,97],{},"Rebase",[15,99,100],{},[89,101],{"alt":91,"src":102},"https:\u002F\u002Fimg.moooodapp.com\u002Fweb_hongweizhu_com_blog\u002Fc2e72b3e9bb7baab321ff82eb3a5abed.png",[15,104,105],{},"rebase 会将两个分支进行合并，同时合并之前的 commit 历史。如果出现冲突，解决冲突后执行以下命令即可：",[19,107,110],{"className":108,"code":109,"language":24},[22],"    git add\n    git rebase --continue\n",[26,111,109],{"__ignoreMap":28},{"title":28,"searchDepth":113,"depth":113,"links":114},2,[],"git",null,"2020-01-14",false,"md",{},true,"\u002Fblog\u002Fgit_basic_commands",{"title":5,"description":5},"blog\u002Fgit_basic_commands",[115],"ycz2AJgc5iU7VMrdjIeZTrFXAINH9i0WIM88H6ZwKf8",1791790504557]