git下载安装之后:
首先设置用户名和邮箱地址,每次Git提交都会使用该用户信息,取值无所谓,没有什么讲究
git config --global user.name "xxx"
git config --global user.email "xxxx"
#修改,设置INI文件中某个属性的值
git config <section>.<key> <value>
#Git三个配置文件
版本库的配置文件,优先级最高,工作目录中的.git/config
全局配置文件(用户主目录下,次之(--global),~/.gitconfig
系统级配置文件(安装目录下,优先级最低(--system),/etc/gitconfig
git config --list#git配置文件采用INI文件格式
git config --list --global
git config --list --local
git config user.name#gitconfig命令可以读取和修改INI配置文件的内容
git config <section>.<key>#读取某个配置的键值
git config --global --edit#编辑配置文件(vim打开)
git config --global --unset <section>.<key>#删除某项配置
获取Git仓库
本地初始化一个(执行git init)
或从远程仓库克隆(git clone会生成一个目录,执行的时候不要在一个git仓库路径下,仓库不能嵌套)
本地仓库中的几个概念
版本库:.git
文件夹(有很多配置信息,日志信息,数据对象,文件版本信息等等)
工作区:.git
文件夹所在的目录
暂存区:.git
文件夹中的index文件
git add .
发生的变化:
在index表中 插入/更新
一条数据,包含信息(blob对象的hash值,被add的文件名)
根据文件内容,生成blob数据对象
$ git ls-files# 查看index文件里的内容
$ git ls-files -s
git reset xxx
发生的变化:其实就是删去了index表中的一条记录,blob数据对象还在
git prune -n#列出没有指向的blob数据对象
git prune#进行清理
git commit -m "init repo"
发生的变化:
#git cat-file命令可以来查看object的信息
git cat-file -t hash#获得object的类型
git cat-file -p hash#获得object的内容数据
git cat-file -s hash#获得object的内容的长度
#回退版本,工作区会变,暂存区会变,版本库没变(改变了指向的commit)
git reset --hard hash
https://www.cnblogs.com/dongcanliang/p/11162235.html