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.nameuser.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文件中:


版权声明: 本文为智客工坊「AhuntSun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

results matching ""

    No results matching ""