FORMA

Git 安装、配置与仓库初始化

在开始使用 Git 之前,需要先完成安装、基础配置,并了解如何创建/克隆仓库以及排除不需要纳入版本控制的文件。本文汇总这三部分内容。

一、安装 Git

Windows

  1. 访问 Git for Windows 下载安装包(.exe)。
  2. 运行安装程序,按默认选项安装即可(推荐保留默认设置,如“Git from the command line and also from 3rd-party software”)。
  3. 安装完成后,可在开始菜单找到 Git Bash(推荐使用)或 Git CMD

macOS

Linux

  • Ubuntu / Debian
    bash
    sudo apt update
    sudo apt install git
    
  • CentOS / RHEL
    bash
    sudo yum install git           # CentOS 7
    sudo dnf install git           # CentOS 8+
    

验证安装成功:

bash
git --version

二、初次配置(必须)

Git 需要知道你是谁,以便在提交时记录作者信息。使用 git config 命令进行全局配置:

bash
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
  • --global 表示全局配置,作用于当前用户的所有仓库。如果去掉 --global,则仅对当前仓库生效。
  • 请用真实姓名和邮箱,建议与 GitHub/GitLab 等托管平台保持一致。

三、常用配置

1. 查看所有配置

bash
git config --list               # 查看全部配置
git config --global --list      # 查看全局配置

2. 设置默认编辑器

例如将编辑器设置为 VSCode:

bash
git config --global core.editor "code --wait"

其他示例:"vim""nano""subl -w" 等。

3. 设置别名(简化命令)

bash
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"

之后可以使用:

bash
git co <branch>     # 等价于 git checkout
git lg              # 查看漂亮的提交图

4. 设置大小写敏感(推荐 true

在 macOS/Windows 上,文件系统默认大小写不敏感,可能导致 Git 误判。建议开启:

bash
git config --global core.ignorecase false

5. 其他实用配置

配置项命令说明
彩色输出(默认已开启)git config --global color.ui auto终端输出高亮
pull 默认行为git config --global pull.rebase true推荐使用 rebase 避免不必要的合并提交
记住密码git config --global credential.helper cache缓存凭据一段时间
记住密码(自定义时长)git config --global credential.helper 'cache --timeout=3600'缓存 1 小时(3600 秒)

6. 配置文件位置

  • 全局配置:~/.gitconfig~/.config/git/config
  • 仓库配置:当前仓库的 .git/config

可以直接编辑这些文件来修改配置,也可以使用 git config 命令。

7. 验证配置

bash
git config user.name
git config user.email

如果输出正确,说明配置成功。

注意:完成上述步骤后,才可以开始使用 Git 进行正式的版本控制工作;否则提交记录中的作者信息会缺失或使用系统默认值。

四、创建与克隆仓库

Git 仓库是进行版本控制的基础。你可以初始化一个全新的本地仓库,或者克隆一个已有的远程仓库到本地。

1. 初始化新仓库(git init

在项目根目录执行以下命令,会在当前目录下创建一个隐藏的 .git 文件夹(该文件夹包含了所有版本历史、分支信息等)。

bash
git init
  • 初始化后,该目录即成为 Git 仓库,但尚未有任何提交(git status 会提示“Initial commit”)。
  • 如果需要在指定目录创建仓库,可加上路径:git init my-project(会自动创建该目录)。

示例

bash
mkdir my-app
cd my-app
git init

此时可以添加文件、进行首次提交。

2. 克隆远程仓库(git clone

从远程服务器(如 GitHub、GitLab、Gitee)复制一个完整的仓库到本地,包括所有历史记录、分支和标签。

基本克隆

bash
git clone <repository-url>
  • 会在当前目录下创建一个与远程仓库同名的文件夹,并将远程仓库的所有文件、版本历史下载下来。

克隆到指定目录

bash
git clone <repository-url> my-folder
  • 将仓库克隆到 my-folder 目录(若目录不存在则创建)。

克隆指定分支

bash
git clone -b <branch-name> <repository-url>
  • 例如:git clone -b develop https://github.com/user/repo.git
  • 仅克隆指定分支(但依然会包含其他分支的元数据,默认检出该分支)。

浅克隆(只获取最新提交,节省时间)

bash
git clone --depth 1 <repository-url>
  • 限制克隆历史深度为 1,适用于只需要最新代码而不需要完整历史的场景(如 CI 环境)。

3. 初始化 vs 克隆

场景使用命令结果
本地已有项目,想让 Git 管理git init创建 .git 目录,需要后续添加远程仓库(git remote add
从服务器拉取现有项目git clone自动创建 .git,并设置远程仓库链接(origin),自动检出默认分支

总结git init 用于从零开始新建版本库,git clone 用于复制已有版本库(最常用的协作起点)。

五、忽略文件(.gitignore

.gitignore 文件是 Git 项目中用来指定“哪些文件或目录不需要被 Git 管理”的配置文件。它就像一个过滤器,能帮助你避免将系统文件、依赖包、编译产物等无关内容提交到代码仓库,保持仓库的整洁和专注。

1. 工作原理

.gitignore 的核心是一系列文件或目录的匹配模式。其中,以 # 开头的行是注释,用于解释忽略规则。Git 会将这些模式与文件路径进行匹配,以决定是否将其忽略。

2. 文件位置与创建

.gitignore 文件通常放置在 Git 仓库的根目录下。你也可以在仓库的子目录中创建其副本,以对特定的代码子模块进行针对性忽略。

你可以通过以下方式创建它:在终端(Mac/Linux)使用 touch .gitignore 命令创建一个空文件,或者直接通过 IDE 或文本编辑器手动创建。

3. 编写格式与语法

基础模式

模式作用示例说明
*.log匹配所有 .log 结尾的文件忽略目录下所有日志文件匹配任意位置的此类文件
temp/匹配整个 temp 目录忽略 temp 目录下的所有内容/ 结尾表示匹配目录
build/匹配 build 目录忽略构建输出目录同上
secret.txt匹配特定文件忽略某个单独的配置文件匹配任意位置的同名文件
/debug.log匹配根目录下的 debug.log忽略项目根目录下的日志文件/ 开头表示仅匹配根目录
docs/*.md匹配 docs 目录下的 Markdown 文件忽略 docs 目录中的所有 .md 文件星号 * 匹配目录内的一级文件

高级模式

  • 匹配任意层级**/logs/debug.log 能匹配 logs/debug.logbuild/logs/debug.log任意位置的 debug 日志。
  • 递归匹配目录logs/**/debug.log 能匹配 logs/debug.loglogs/monday/debug.log深度不定的 debug 日志。
  • 取反规则:使用 ! 来“例外”某些不符合主规则的特定文件或目录。
    text
    /*
    !/build   # 忽略根目录下所有文件,但保留 build 目录
    

    注意:当你忽略一个父级目录后,对于其中文件的取反操作通常是无效的。

  • 字符匹配
    • ?:匹配一个任意字符,如 debug?.log 可匹配 debug1.logdebugA.log
    • [abc]:匹配方括号内的任意一个字符。
    • [0-9]:匹配一个数字范围,如 debug[0-9].log

4. 全局 .gitignore(适用于所有项目)

对于操作系统(如 macOS 的 .DS_Store)或编辑器(如 .vscode/.idea/)产生的、你希望在所有项目中都忽略的文件,可以配置一个全局的 .gitignore 文件。

配置步骤

  1. 在用户主目录创建文件
    bash
    touch ~/.gitignore_global
    
  2. 在其中加入通用规则
    text
    *~
    .DS_Store
    .vscode/
    .idea/
    Thumbs.db
    
  3. 告诉 Git 使用它
    bash
    git config --global core.excludesfile ~/.gitignore_global
    

5. 忽略已被跟踪的文件

如果某个文件已经被 Git 跟踪,再把它加入 .gitignore 是无效的。你需要先将其从 Git 的跟踪列表中移除(同时保留本地文件):

bash
git rm --cached <file>

执行后,该文件会变成“未跟踪”状态,你的 .gitignore 规则便会生效。

6. 官方精选模板库

GitHub 官方提供了一个 .gitignore 模板集,几乎覆盖了所有主流编程语言、框架和操作系统。

  • 官方仓库github/gitignore
  • 项目结构:仓库提供现成的模板,如 Python.gitignoreNode.gitignore 等,下载后重命名并放到项目根目录即可。
  • 在线创建:在 GitHub 网站上新建仓库时,选择 .gitignore 下拉框并按需选取。
  • 命令行获取:使用 curl 直接下载:
    bash
    curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore
    

7. 常用模式总结

模式说明示例
*.exe忽略所有 .exe 可执行文件匹配任意位置的 .exe 文件
*.class忽略所有 .class 编译文件匹配任意位置的 .class 文件(Java 编译产物)
vendor/忽略 PHP 依赖目录忽略 vendor 目录下的所有 PHP 依赖包
.env忽略环境配置文件忽略根目录下存储敏感信息的 .env 文件
.vscode/, .idea/忽略 IDE 个人配置忽略不同开发者本地的 IDE 配置差异
.DS_Store, Thumbs.db忽略操作系统生成的元文件统一忽略 macOS 和 Windows 的预览缓存文件
dist/, build/忽略构建输出目录保持代码仓库干净,所有构建产物由生成系统处理

六、注意事项

  • 安装完成后一定要先完成用户名/邮箱配置,否则提交记录会缺失作者信息。
  • 克隆大型仓库时,若只需要最新代码,优先使用 --depth 1 浅克隆节省时间和磁盘空间。
  • .gitignore 只对未被跟踪的文件生效;已被跟踪的文件需先用 git rm --cached 移除跟踪后才会被忽略。
  • 建议将 .gitignore 文件本身提交到仓库,统一团队规则;系统/编辑器相关的忽略规则放到全局 .gitignore_global 中,避免污染项目内的 .gitignore

参考文献

资料说明
Pro Git官方书
Git 文档命令
github/gitignore官方模板库
运维导读学习路径