> For the complete documentation index, see [llms.txt](https://alanmpan.gitbook.io/git-learning/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://alanmpan.gitbook.io/git-learning/git/05.-chu-shi-pei-zhi.md).

# 05.初始配置

在正式使用 Git 创建并管理项目前，我们还需要对 Git 进行初始的配置。Git 提供了 git config 工具，来帮助我们进行配置。我们来试一试吧，打开终输入

```powershell
git config --list --show-origin
```

我们可以查看所有的配置以及它们所在的文件信息。

终端中输出了配置文件名称、路径以及详细的配置项。Git 的配置文件总共有三个，分别存储在不同的地方，并对应不同的权限。

1. 存储在安装目录下etc路径下的 `gitconfig` 文件，它是系统全局配置文件，它包含系统上每一个用户及他们仓库的通用配置。
2. 在当前系统用户下的 `.gitconfig`文件，这是当前用户的全局配置文件，它存储了仓库都共享的通用配置选项。
3. 存储在仓库目录下的`.git/config`文件，是针对仓库的配置文件，它存储了仓库的配置信息。

这里问一个问题，假设三个配置文件都存储了同样一条配置信息，请问哪个配置文件的优先级最高？答案是仓库目录的优先级最高，其次是用户配置文件，最后是全局配置文件。

> 配置文件是一种用来存储应用程序、系统或服务的设置信息的文件。这些文件通常以简单的文本格式写成，包含各种配置选项及其对应的值。使用配置文件可以让用户更方便地自定义和调整软件应用程序的各种设置，同时也能够简化软件的部署和维护工作。在实际应用中，配置文件还常常被用于支持不同平台或操作系统之间的兼容性，以及版本控制等功能。

## 设置用户名和邮箱

在 Git 中，一旦设置了用户名和邮箱地址，并将其提交到 Git 提交历史中，就不能直接更改它们。这是因为 Git 使用提交者的用户名和邮箱地址来跟踪每个提交的作者信息，并将其保存在版本控制历史记录中。如果您更改了用户名或邮箱地址，则之前的提交历史记录中的作者信息也会被随之更改。

```powershell
git config user.name "名字" 
git config user.email "邮箱"
```

## 修改默认编辑器为 VScode

```powershell
git config --global core.editor "code --wait”
```

`code` 是 VSCode 运行程序名称，被写入到了环境变量，输入code 就可以调用VSCode，`--wait` 参数是 VSCode 的参数，是让 VSCode 以阻塞模式运行.

> 阻塞模式是一种程序运行方式，它会一直等待某个操作完成后才会继续执行下面的代码。在阻塞模式下，程序会暂停当前任务，等待某些条件满足后再继续执行下一步操作。在 VS Code 编辑器中，如果使用 `--wait` 参数以阻塞模式启动编辑器，则当您打开一个文件时，编辑器将会在文件保存并关闭后才退出并返回终端的控制权。这就确保了 Git 命令在等待编辑器中的操作完成后才会继续执行下一步操作。这对于集成编辑器和 Git 的操作非常有用，因为它可以确保 Git 在正确的时间点捕获并存储编辑器中所做的更改。

我们可以通过 `git config --list` 命令来查看配置信息，还可以通过 `git help` 来获取命令提示信息，也可以指定命令来查看帮助信息，比如，使用 git help config 来查看 config 的帮助信息 。

> 一个命令有三部分组成:
>
> * 命令名，表示要执行的操作，例如 git，
> * 选项参数，用于修改命令的默认行为或者指定其他相关信息。选项参数通常以短横线（-）或双短横线（--）开头，如 `--list`,`--show-origin`。
> * 参数值，用于指定命令需要操作的对象或者附加信息。参数值可以是文件名、目录名、URL 地址、IP 地址、用户名、密码等等，根据不同的命令和应用场景可能会有所不同。
>
> 在 `git config --global core.editor "code --wait"` 中:
>
> * `git`是命令名，表示执行 Git 的相关操作
> * `config` 是 Git 的子命令，用于管理和查询 Git 的配置信息
> * `--global` 是选项参数，表示将修改应用于当前用户的全局 Git 配置文件，
> * `core.editor`：参数值，表示要设置或修改的 Git 配置选项的名称。
> * `"code --wait"`：参数值，表示要为 `core.editor` 选项设置的值，即使用 VS Code 编辑器，并添加 `--wait` 参数以阻塞模式启动。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://alanmpan.gitbook.io/git-learning/git/05.-chu-shi-pei-zhi.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
