1.在git中,我们使用git config 命令用来配置git的配置文件
git配置级别主要有以下3类:
- 仓库级别 local 【优先级最高】
- 用户级别 global【优先级次之】
- 系统级别 system【优先级最低】而且一般不设置
如果一台电脑被多个不同的人使用,每个人用一个项目,那么最适合的配置级别是仓库级别。因为每个人都有自己的项目,可以为每个项目设置特定的配置,这样每个人的配置都是独立的,不会互相影响。在这种情况下,每个项目的.git/config
文件将包含该项目特定的配置。
如果这台电脑只由一个人使用,但这个人有多个项目,那么可以考虑使用用户级别配置。因为所有项目都是由同一个人管理,所以一些通用的配置(比如用户信息、默认编辑器等)可以在用户级别设置,这样所有的项目都会使用这些通用配置。当然,如果不同的项目需要不同的特定配置,那么也可以在项目级别进行设置,覆盖用户级别的配置。
系统级别,比如整个公司都需要用这个配置,那么我们可以考虑使用系统级别。
优先级具象化:我们可以提交一个文件,并用日志来展现
每一条都有一个Author,什么是优先级呢,就是如果设置了仓库级别这个作者就是下文中的zhangsan,没有zhangsan有lisi就是lisi,没有lisi就是zhaoliu
2.config查看并修改配置信息
注意:不要去手动修改
git config --local -l 查看仓库级别配置信息
git config --global -l 查看用户级别配置信息
git config --system -l 查看系统级别配置信息
git config --<某一级别> <配置项> <值>
拿邮箱和用户名举例修改
期间在配置系统级别的时候出现了没有管理员权限的问题
(用户级别,仓库级别成功)
解决方法
用管理员身份运行Git Bash
在管理员身份运行的命令行完成
同时我们发现在原命令行能够显示修改的内容,系统级别成功!
3.如何查看自己三种级别的config配置内容
仓库级别( 在GitTest文件夹 .git目录下)
用户级别(C盘/用户/用户名目录下)
系统级别
-
在Windows系统中,系统级别的
gitconfig
文件通常位于:C:\Program Files\Git\etc\gitconfig
或者
C:\ProgramData\Git\config
如果不在这两个目录下面,非常规的,像我一样
可以使用Everything(一款强大的查找文件工具)
4. git add系列
以下命令都可以递归地将当前目录及其子目录中的所有变更添加到暂存区。本文只列出区别
git add . 包括新文件和被修改的文件,但是不包括待删除的文件
git add -A 包括新文件和被修改的文件,也包括待删除的文件。
git add -u 包括被修改的文件和待删除的文件,但是不包括新文件
新文件:
删除文件:
修改文件:
5.".gitignore"文件
功能:避免提交临时文件;保护敏感信息 ;减小仓库大小
在使用git的过程中,一般我们总会有些文件无需纳入git的管理,也不希望它们总出现在未跟踪文件列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等等。
此时我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式,Git会根据这些模式规则来判断是否将文件添加到版本控制中。
拿.doc格式举例:
先生成一个.gitignore文件
设计要屏蔽的文件格式为.doc 格式,保存退出
撰写一个doc文件,回车进入书写内容后退出
在里面输入 " *.doc ",保存并退出编辑
最起码要将.gitignore文件添加到暂存区,撰写一个 01.doc,发现该文件已经被忽略
这个文件只是被忽略了不能添加到工作区,但是这个文件本身是存在的
6. diff命令
这里小编不一一举例展示,感兴趣的可以自行操作,diff展现了各个前后版本的操作里内容的区别
git diff readme.txt
diff里面a表示前面那个变量,b表示第二个变量
HEAD commit版本
Index staged版本
工作目录 vs 暂存区
$ git diff <filename>
意义:查看文件在工作目录与暂存区的差别。如果还没 add 进暂存区,则查看文件自身修改前后的差别。也可查看和另一分支的区别。
$ git diff <branch> <filename>
暂存区 vs Git仓库
git diff --cached <filename>
意义:表示查看已经 add 进暂存区但是尚未 commit 的内容同最新一次 commit 时的内容的差异。 也可以指定仓库版本:
git diff --cached <commit> <filename>
工作目录 vs Git仓库
git diff <commit> <filename>
意义:查看工作目录同Git仓库指定 commit 的内容的差异。
<commit>=HEAD 时:查看工作目录同最近一次 commit 的内容的差异。
Git仓库 vs Git仓库
git diff <commit> <commit>
意义:Git仓库任意两次 commit 之间的差别。
以上命令可以不指定 <filename>,则对全部文件操作。
以上命令涉及和 Git仓库 对比的,均可指定 commit 的版本。
HEAD 最近一次 commit
HEAD^ 上次提交
HEAD~100 上100次提交