2.3.5、更多配置项
git config --global color.ui true #打开所有的默认终端着色 git config --global alias.ci commit #别名 ci 是commit的别名 [alias] co = checkout ci = commit st = status pl = pull ps = push dt = difftool l = log --stat cp = cherry-pick ca = commit -a b = branch user.name #用户名 user.email #邮箱 core.editor #文本编辑器 merge.tool #差异分析工具 core.paper "less -N" #配置显示方式 color.diff true #diff颜色配置 alias.co checkout #设置别名 git config user.name #获得用户名 git config core.filemode false #忽略修改权限的文件
所有config命令参数
语法: git config [<options>] 文件位置 --global #use global config file 使用全局配置文件 --system #use system config file 使用系统配置文件 --local #use repository config file 使用存储库配置文件 -f, --file <file> #use given config file 使用给定的配置文件 --blob <blob-id> #read config from given blob object 从给定的对象中读取配置 动作 --get #get value: name [value-regex] 获得值:[值]名[正则表达式] --get-all #get all values: key [value-regex] 获得所有值:[值]名[正则表达式] --get-regexp #get values for regexp: name-regex [value-regex] 得到的值根据正则 --get-urlmatch #get value specific for the URL: section[.var] URL 为URL获取特定的值 --replace-all #replace all matching variables: name value [value_regex] 替换所有匹配的变量:名称值[ value_regex ] --add #add a new variable: name value 添加一个新变量:name值 --unset #remove a variable: name [value-regex] 删除一个变量名[值]:正则表达式 --unset-all #remove all matches: name [value-regex] 删除所有匹配的正则表达式:名称[值] --rename-section #rename section: old-name new-name 重命名部分:旧名称 新名称 --remove-section #remove a section: name 删除部分:名称 -l, --list #list all 列出所有 -e, --edit #open an editor 打开一个编辑器 --get-color #find the color configured: slot [default] 找到配置的颜色:插槽[默认] --get-colorbool #find the color setting: slot [stdout-is-tty] 发现颜色设置:槽[ stdout是TTY ] 类型 --bool #value is "true" or "false" 值是“真”或“假”。 --int #value is decimal number 值是十进制数。 --bool-or-int #value is --bool or --int 值--布尔或int --path #value is a path (file or directory name) 值是路径(文件或目录名) 其它 -z, --null #terminate values with NUL byte 终止值与null字节 --name-only #show variable names only 只显示变量名 --includes #respect include directives on lookup 尊重包括查找指令 --show-origin #show origin of config (file, standard input, blob, command line) 显示配置(文件、标准输入、数据块、命令行)的来源
三、Git理论基础
3.1、工作区域
Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
- Workspace:工作区,就是你平时存放项目代码的地方
- Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
本地的三个区域确切的说应该是git仓库中HEAD指向的版本
- Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。
- WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。
- .git:存放Git管理信息的目录,初始化仓库的时候自动创建。
- Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。
- Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。
- Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。
3.2、工作流程
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
3.3、图解教程
个人认为Git的原理相比别的版本控制器还是复杂一些的,有一份图解教程比较直观:
四、Git操作
4.1、创建工作目录与常用指令
工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文。
日常使用只要记住下图6个命令:
4.2、获得GIT仓库
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。
4.2.1、创建全新仓库
需要用GIT管理的项目的根目录执行:
# 在当前目录新建一个Git代码库 $ git init
执行:
结果:
执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面。
当然如果使用如下命令,可以把创建目录与仓库一起完成:
# 新建一个目录,将其初始化为Git代码库 $ git init [project-name]