1.2 Git配置
git config
可以通过三个地方的三个文件设置git配置参数,分别代表三个不同的作用域
/etc/gitconfig
:作用域:一台计算机(操作系统)上的所有用户,几乎不会使用,优先度低于--global;设置方法:
git config --system
~/.gitconfig
:作用域:计算机中的某用户创建的所有项目,常用,优先度低于--local;设置方法:
git config --global
.git/config
:作用域:某一特定的版本库,不常用,是最具体的,优先度最高;设置方法:
git config --loc
可使用git config
查看相关操作命令以及提示:
user.name与user.email
添加配置
user.name
和user.email
指的是用户名和邮箱,这些两个配置会被添加到提交信息中,可以搭配上述命令配置到三种作用域中:
- 仓库配置:通过
--local
命令配置,作用域为当前版本库,配置写入.git/config
文件中,优先度第一;
git config --local user.name "张三" git config --local user.email test1@git.com
以上为配置特定版本库(mygit)的用户和邮箱:这样配置就可以通过两个版本库来进行多人操作的模拟;
- 用户配置:通过--global命令配置,作用域为当前系统用户,配置写入~/.gitconfig文件,优先度第二;
- 系统配置:通过
--system
命令配置,作用域为当前操作系统所有用户,配置写入/etc/gitconfig
文件,优先度第三;这里需要管理员身份运行git bash
才有修改权限:
git config --system user.name "张三爸爸" git config --system user.email test3@git.com
查看配置
-
直接查看配置文件(可通过cat指令查看):
-
仓库配置:
.git/config
- 用户配置:
~/,gitconfig
- 系统配置:
/etc/gitconfig
- 通过
git config --list
:可以批量查看配置信息:
- 通过
git config user.name/email
查看:
- 通过
git config --list
:可以批量查看配置信息:
可以看到输出的配置信息是仓库配置张三,验证了仓库配置的优先级最高;
修改配置
删除config
配置
git config --unset <参数名>
首先设置错误参数,随后查看该配置:
删除该配置:
修改user.name/email
配置
- 可以通过添加配置的方式对原有配置进行覆盖,从而达到修改的效果:
- 通过--unset命令删除指定的配置信息:
我们以该方式继续删除用户配置--global user.name
:张三哥哥,和仓库配置--local user.email
:test1@git.com
:
此时再次通过git config user.name/email
查看配置信息git config user.name/email
:
可以发现user.name
显示的是系统配置:张三爸爸,user.email
显示的是用户配置:test2@git.com
,验证了用户配置优先级第二和系统配置优先级第三;
.gitignore
¶
作用
我们可以通过git
提供的.gitignore
文件配置不被git
跟踪的文件。被添加到.gitignore
文件中的文件名,将不会被git
追踪。如下图中的新增文件setting.properties
:
可见在.gitignore
(注意文件是官方规定好了的不能随便乱改)文件中添加了文件名setting.properties
后,git
便不再追踪setting.properties
这个文件了;
应用场景
通常用来忽略本地开发中的下列文件:
.idea
、.settings
、.classpath
等无用配置;-
系统自动生成的文件:各种IDE的配置文件,项目依赖文件等;如
vue-cli
创建项目中node_modules
目录下的各种依赖文件; -
编译生成的中间文件,可执行文件;
-
敏感的配置文件和本地不想提交的脚本文件等;
实战演示
只要与.gitignore
中内容相匹配的目录或文件就会被git
忽略;再如:
gtiignore
文件非常重要,一般放在创建项目的根目录上。
注意在.gitignore
文件中一行写一个文件名;.gitignore
文件也支持正则表达式比如:
*.a
:忽略所有以.a
结尾的文件;!lib.a
:表示除了lib.a
文件,其余都会被忽略;/TODO
:仅仅忽略项目根目录下的TODO
文件,不包括subdir/TODO
(TODO为示例文件);- 可以通过
/*/TODO
使一层目录下的TODO
文件被忽略; - 通过 /**/TODO 使所有层目录下的TODO文件都被忽略;
build/
表示忽略build
目录下的所有文件;doc/*.txt
表示忽略doc
目录下所有的.txt
文件,包括doc/notes.txt
但不包括doc/server/.arch.txt
;doc/*/*.txt
会忽略doc
目录及其任何一个子目录下的所有.txt
文件,比如doc/bin/2.txt
(/ * 表示一层目录);- 而doc//*.txt 则会把doc任何一层目录及其子目录下的.txt文件忽略;即 // 两颗星表示所有层目录;
以下为某个使用vue-cli3
创建项目下的.gitignore
文件内容:
.DS_Store node_modules /dist # local env files .env.local .env.*.local # Log files npm-debug.log* yarn-debug.log* yarn-error.log* # Editor directories and files .idea .vscode *.suo *.ntvs* *.njsproj *.sln *.sw?
配置技巧
其实我们不需要每次都手写一遍.gitignore
文件,可以通过这个网站自动生成不同语言项目的忽略文件:http://gitignore.io/
在输入框中输入相关语言标签,就可以自动生成忽略文件列表。可以将它作为参考,选择其中需要的添加到.gitignore
文件中: