Skip to content

使用 direnv 可以为每个项目自动加载环境变量,从而为每个目录加载单独的环境配置,实现项目目录中的 Git 配置自动切换。

安装 direnv

在 Ubuntu 和 Arch Linux 上安装

  1. 安装 direnv:

    在 Ubuntu 上运行:

    bash
    sudo apt install direnv

    在 Arch Linux 上运行:

    bash
    sudo pacman -S direnv
  2. 配置 shell 环境:

    在 shell 配置文件中添加以下内容:

    • 对于 bash,在 ~/.bashrc 中添加:

      bash
      eval "$(direnv hook bash)"
    • 对于 zsh,在 ~/.zshrc 中添加:

      bash
      eval "$(direnv hook zsh)"
    • 对于 Fish,在 ~/.config/fish/config.fish 中添加:

      fish
      direnv hook fish | source
  3. 重新加载 shell 配置:

    bash
    source ~/.bashrc   # 或者 source ~/.zshrc 或 source ~/.config/fish/config.fish

设置 SSH 配置文件

编辑 ~/.ssh/config 文件(如果不存在,则创建该文件),并添加以下内容:

bash
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

根据需要更改 IdentityFile 的路径

设置 .envrc

在项目目录下创建 .envrc 文件,添加以下配置:

bash
# 设置项目特定的 Git 用户信息
git config user.name "Project Specific Name"
git config user.email "project_specific_email@example.com"

# 指定 SSH 密钥路径
export SSH_KEY_PATH="$HOME/.ssh/id_rsa_custom"

# 如果 SSH 密钥存在,则添加到 ssh-agent
if [ -f "$SSH_KEY_PATH" ]; then
    ssh-add "$SSH_KEY_PATH"
fi

允许 .envrc 文件

进入项目目录后,运行以下命令以使 direnv 允许并加载 .envrc 配置:

bash
direnv allow