玩转git三剑客
git的安装
git的配置
在安装好git后,我们首先需要配置一下user信息:git config --global user.name ''
git config --global user.email ''
这样在团队协作开发时,你所做的每一次提交,都会更加明晰。
—global 是对当前用户所有的仓库有效;
—local 只对当前用户的当前仓库有效
运行git config --global --list
可以查看当前的配置信息
创建一个git仓库
cd 某一个文件夹
git init your_project #在当前路径下创建和项目名称同名的文件夹
cd your_project
git commit -m'xxx'
提交本次作出的修改,xxx中填写一些说明信息,比如git commit -m'新增了readme文件'
git add readme
将文件添加到暂存区中,这样为commit做好准备
往git仓库中添加文件
git提供了缓存区功能。我们在工作目录git add files后,可以将文件添加到暂存区,然后git commit就可以将暂存区中的内容提交
git中文件地重命名
常规地,对于已经提交的文件,以readme为例,我们现在要将其重命名为readme.md,则需要三步:
- mv readme readme.md
- git add readme.md
- git rm readme
现在,有更加方便的做法,直接使用如下命令:
git mv readme readme.md
即可。
查看git版本历史
命令 git log 可以快速查看所有版本git
介绍一个概念:分支(branch)git branch
可以用来查看当前分支git branch dev
可以创建一个名为dev的分支git branch -a
可以用来查看所有分支git checkout 分支名
可以切换到指定分支git log
默认查看当前分支的所有版本信息git log --all
可以查看所有分支的所有版本信息git log --all --graph
可视化查看所有分支的所有版本信息
.git文件的探秘
在指定的目录下使用git init命令后,会生成一个默认的.git文件夹。我们在仓库文件目录下,运行命令cd .git
dir
然后显示文件结构,运行命令type 文件名
可以显示文件内容
- HEAD 它是一个引用,指向了当前正在工作的分支。实际上它最终指向到一个commit上了。
- config文件,它存储了git仓库的一些配置信息,比如之前的user配置信息,user.name以及user.email等等。
- refs 存储了heads和tags
- objects
git对象关系
commit、tree、blob三者之间的关系
分离头指针
分离头指针,是指某些情况下,当前的commit没有和任何分支绑定在一起,可能会被git当做垃圾清理掉,造成一些损失。
注意:如果只是做一些尝试性工作,分离头指针也许并不是一件坏事;
如果在开发过程中,做了一些重要的更改,那么就一定要将它和特定的分支绑定在一起。