Git 学习笔记
这篇笔记记录了我在git学习中常常用到的指令,方便在未来进行查阅。此篇文章也会根据笔者的学习进度持续更新。
网站分享
Git 常用命令大全
Learn Git Branching
基础
$ git init //在当前位置配置一个git版本库
$ git add <file> //将文件添加至暂存区
$ git add . //将文件夹中的所有内容添加至暂存区
$ git commit //将暂存区的内容提交至库中
$ git commit -m "<注释内容>" //提交的同时添加注释
$ git status //查看暂存区中的内容
$ git log //查看提交记录
其实每一个提交记录都可以看作一个“快照节点”,像一个相片一样记录的当前库内容的所有细节,方便我们恢复到对应提交节点的内容。
每一个这样的节点对应一个又长又复杂的哈希值,用来索引这些提交。
这个过程中可能会进入Vim编辑器,在按下ESC后切换至命令行模式,输入“:wq”即可保存并退出。
git log展示是可能会进入less分页器,按下q键即可退出。
分支
在我们的提交树中,总是有一个名为HEAD的指针指向我们的提交,其所指的地方常常使我们指令所作用的地方。HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。
$ git branch //展示所有分支,带*的是HEAD所在的位置
$ git branch <branch_name> //创建分支
$ git branch -d <branch_name> //将分支删除
$ git branch -f <branch_name> <hash> //将分支强制移动到某提交上
其实HEAD的实质也是一个哈希值,一般在需要用到哈希值时,可以使用相对位置。如HEAD~就是HEAD的父提交节点。HEAD~2就是父的父。HEAD^就是父。HEAD^2是第二个父(多个父节点时)。
$ git merge <branch_name> //将目标分支并入当前分支(多条路径)
$ git rebase <branch_name> //将目标分支嵌入当前分支(一条路径)
在并入分支时可能会产生冲突,命令行中显示“MERGING”的字样,这是需要手动在对应文件做出更改,然后再通过add指令和commit指令重新提交。
$ git checkout <branch_name>/<hash> //将HEAD移动至目标提交(检出)
$ git checkout -b <branch_name> //创建新分支并检出,即HEAD到此分支上
$ git reset <hash> //真撤销
$ git revert <hash> //假撤销,相当于是做了一个回到上一提交的提交
小结
这篇文章将会作为动态笔记记录,我将把我在日常开发中可能用到的指令更新在这里,方便查阅与使用。
如有补充纠正欢迎留言。