参考官方安装git
在终端输入git --version
可以看到git的版本信息,以此代表安装成功。
配置user.name和user.email
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
缺省等同于local
git config --local ## local只对某个仓库有效
git config --global ## global对当前用户所有仓库有效
git config --system ## system对系统所有登录的用户有效
显示config的配置,加--list
git config --list --local ## local只对某个仓库有效
git config --list --global ## global对当前用户所有仓库有效
git config --list --system ## system对系统所有登录的用户有效
进入git项目目录,配置local用户信息
git config --local user.name "Your Name"
git config --local user.email "email@example.com"
如果在一个仓库中存在local用户与全局用户,那么local用户的优先级高于全局用户信息。
git add filename #将文件添加到暂存区
git commit -m'message' #为提交添加信息
通过git add -u
命令可以将纳入git管理的文件所有更新文件进行添加。
通过git mv oldName newName
即可快速变更文件名,并且会自动添加到暂存区,直接通过commit即可提交。
n2表示所有分支最近两个。
在项目目录输入gitk
即可。
.git
config
文件
配置文件,存放一些配置信息。HEAD
文件
引用文件,引用当前分支refs
文件夹
heads
分支文件夹,
存放各个分支,其中内容表示commit的哈希值。tags
标签或里程碑objects
文件夹
文件夹的名称与该文件夹内文件名拼成一个哈希值,表示一个树。
其内容为文件变动信息。一个commit对应一颗树,树里边包含树(文件夹)。树中的文件为blob,文件夹则为另一个树,在这个文件夹中同理。叶子节点到文件。
git的设计,只要文件内容相同,就是一个东西。
分离头指针指的是没有基于某个分支来做修改。
head不仅可以指代新分支的最后一次提交,也可以指代具体commit。当作分支切换时,head会指向这个切换的分支。分支(commit)最后也要落脚于commit。
HEAD可以指代当前分支。例如比较每次commit的差异:
#比较当前commit与上一次commit的差异
#两种写法都可以
git diff HEAD HEAD^
git diff HEAD HEAD~
#比较当前commit与上次commit的差异
#两种写法都可以
git diff HEAD HEAD^^
git diff HEAD HEAD~2