该博客的知识记录都来自于廖雪峰大佬的官方网站,如果想学习Git建议去官网打基础。
以下都是个人思考总结,如有错误欢迎留言,但是不能作为官方知识。
Git原理分析
Git是一个分布式系统,而SVN是一个集中式系统(就是有个概念对比一下)。
工作区就是我们日常的计算机中的目录文件,而Git就是依赖生成一个.git文件对目录进行跟踪,这是Git的工作原理。
在日常的可视化工具是对.git文件的可视化,并且在可视化窗口中操作.git文件。
而在git bash中的命令行则是操作.git文件中的记录信息。
在工作区中创建一个仓库后,原本的目录中就有了工作区以及仓库区两个逻辑概念。而在工作区与创库区“交流”之间存在一个暂存区。
Git命令
仓库的基础命令
预备工作:新建一个文件夹作为一个工作区并且进入工作区。 ——mkdir命令创建目录文件 ——cd命令进入工作区
生成.git目录,形成Git仓库:
git init
把工作区的文件添加到暂存区:
git add <fileName>
工作区的文件可以一次或多次添加到暂存区中,然后一次性提交至仓库中。
把暂存区的内容提交到仓库中:
git commit -m <提交动作信息备注>
查看仓库与工作区之间的状态:
git status
状态有:工作区文件未添加至暂存区、已经添加到暂存区但还未提交、工作区干净(就是仓库和工作区的内容一致)等。
查看文件的修改造成不同的地方:
git diff
版本号控制命令及基础知识
在Git中有一个HEAD指针,表面意义它指向的是当前(最新)仓库的版本。
严格意义上的HEAD是这样的:在Git中存在分支管理概念,而每一个分支都由一个指针指向,例如master分支(主分支)就由一个master指针指着。而HEAD指针指向着该master指针,master指针指向最新版本的仓库。
回退版本命令:
git reset --hard <版本位置信息>
版本位置信息:
HEAD^ 上一个版本
HEAD^^ 上上个版本
HEAD~n 上n个版本
commit id 指定版本号可以回退至已经被回退的版本号
查看日志命令(包含版本号的commit id):
git log (--pretty=online)
(--pretty=online) 输出关键信息的参数
撤销修改
撤销修改的状态以及结果有两个:
1、 在撤销工作区中的修改——结果:单纯地撤销操作
2、 撤销在暂存区的修改——结果有两步动作:撤销修改 文件重新放回工作区,并且只能撤销到最新版本。
第一个状态的撤销命令:
git checkout -- <fileName>
git checkout命令中的 “--”很重要,没有它这个命令变成了分支管理命令。
第二个状态的撤销命令
git reset HEAD <fileName>
要上班了,明天(下一个博客)再写关于远程分支管理。