Skip to content

Git

收录了一些git相关的知识。

1. mac如何设置终端中默认的node版本

在Mac上设置终端中默认的Node版本可以使用以下几种方法:

使用nvm(Node Version Manager)nvm

  1. 安装nvm:如果尚未安装nvm,可以通过以下命令在终端中进行安装:

    bash
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

    安装完成后,需要重新启动终端或执行以下命令使nvm生效:

    bash
    source ~/.bashrc
    source ~/.bash_profile
    source ~/.zshrc

    根据你使用的 shell,选择其中一个或多个命令执行。

  2. 安装不同版本的Node:使用nvm安装你需要的Node版本,例如:

    bash
    nvm install 18.17.1
    nvm install 20.6.1
  3. 设置默认版本:使用以下命令设置默认的Node版本,例如将18.17.1设置为默认版本:

    bash
    nvm alias default 18.17.1

使用n(Node Version Management)n

  1. 安装n:可以通过以下命令安装n:
    bash
    npm install -g n
  2. 安装不同版本的Node:使用n安装所需的Node版本,例如:
    bash
    n 18.17.1
    n 20.6.1
  3. 设置默认版本:安装完成后,使用以下命令设置默认版本,如将18.17.1设为默认:
    bash
    n 18.17.1
    n alias default 18.17.1

修改环境变量

  1. 查找Node安装路径:首先需要找到你想要设置为默认版本的Node的安装路径。假设你通过安装包安装了Node.js,默认路径可能是/usr/local/bin/node/usr/local/Cellar/node/[version]/bin/node等。
  2. 编辑环境变量配置文件:根据你使用的 shell,编辑相应的配置文件。
    • 如果使用bash,编辑~/.bash_profile~/.bashrc
    • 如果使用zsh,编辑~/.zshrc。 在文件中添加或修改以下内容,将路径替换为你实际的Node安装路径:
    bash
    export PATH="/usr/local/Cellar/node/18.17.1/bin:$PATH"
    这将把指定版本的Node路径添加到环境变量的最前面,使其优先被使用。
  3. 使配置生效:编辑完成后,在终端中执行以下命令使配置生效:
    • 对于bash
      bash
      source ~/.bash_profile
      source ~/.bashrc
    • 对于zsh
      bash
      source ~/.zshrc

TIP

在Mac上 不依赖nvm和n等第三方库 设置终端中默认的Node版本,可以通过 修改环境变量 来实现,以下是具体步骤:

查找Node安装路径

  • 通常情况下,Node.js的默认安装路径可能是/usr/local/bin/node/usr/local/Cellar/node/[version]/bin/node等。你可以通过在终端中输入which node命令来查找当前使用的Node可执行文件的路径,从而确定你想要设置为默认版本的Node的安装位置。

编辑环境变量配置文件

  • 根据你使用的 shell,编辑相应的配置文件:
    • 如果使用bash:编辑~/.bash_profile~/.bashrc文件。
    • 如果使用zsh:编辑~/.zshrc文件。
  • 在文件中添加或修改以下内容,将路径替换为你实际的Node安装路径:
bash
export PATH="/usr/local/Cellar/node/[具体版本号]/bin:$PATH"

例如,如果你的Node安装在/usr/local/Cellar/node/18.17.1/bin,则应添加如下内容:

bash
export PATH="/usr/local/Cellar/node/18.17.1/bin:$PATH"

这会将指定版本的Node路径添加到环境变量的最前面,使其在执行命令时优先被使用。

使配置生效

  • 编辑完成后,在终端中执行以下命令使配置生效:
    • 对于bash
bash
source ~/.bash_profile
source ~/.bashrc
- **对于zsh**:
bash
source ~/.zshrc

通过以上步骤,即可将指定的Node版本设置为终端中的默认版本。不过这种方法相对较为固定,如果需要切换Node版本,就需要再次修改环境变量配置文件。

使用nvm或n来管理Node版本是比较推荐的方法,因为它们可以方便地在不同版本之间切换,并且可以为不同的项目设置特定的Node版本,而修改环境变量的方法相对较为固定,不太灵活,但在某些特定情况下也可能适用。

2. git stash

在 Git 中,stash(存储)是一种临时保存工作目录和暂存区改动的方法,让你可以快速切换上下文,而无需提交未完成的代码。以下是关键点解析:


核心作用

  • 临时保存改动:将当前未提交的改动(包括工作目录和暂存区的修改)保存到一个栈结构中,之后可以随时恢复。
  • 解决场景:当你需要切换分支或处理紧急任务,但当前代码未完成、不适合提交时,用 stash 暂存改动。

常用命令

  1. 保存当前改动

    bash
    git stash
    • 默认会保存工作目录和暂存区的修改(不包括未跟踪的文件)。
    • 添加 -u--include-untracked 可以包含未跟踪的文件:
      bash
      git stash -u
  2. 查看存储列表

    bash
    git stash list
    • 显示所有存储项,格式如 stash@{0}: WIP on 分支名: 最近提交的哈希和消息
  3. 恢复存储的改动

    • 恢复最近一次的存储(不删除存储记录):
      bash
      git stash apply
    • 恢复指定存储(如 stash@{1}):
      bash
      git stash apply stash@{1}
    • 恢复并删除存储(pop):
      bash
      git stash pop
  4. 删除存储

    • 删除最近一次的存储:
      bash
      git stash drop
    • 删除所有存储:
      bash
      git stash clear
  5. 创建带描述的存储

    bash
    git stash save "描述信息"
    • 便于后续识别存储内容。

适用场景

  • 切换分支:当前分支有未提交代码,但需要切换到其他分支修复 Bug。
  • 紧急任务:临时保存当前工作,处理更高优先级的任务。
  • 实验性代码:不确定改动是否保留时,先暂存再决定。

注意事项

  • 存储是临时的:长期未恢复的存储可能被遗忘,建议尽快处理。
  • 冲突风险:恢复存储时若与当前代码冲突,需手动解决冲突。
  • 不包含未跟踪文件:默认不保存新创建的文件(需加 -u 参数)。

示例流程

bash
# 1. 修改文件后暂存(未提交)
git add file.txt
git stash save "修改了file.txt"

# 2. 切换分支处理其他任务
git checkout another-branch

# 3. 返回原分支并恢复存储
git checkout original-branch
git stash pop

通过 stash,你可以灵活管理未完成的代码,保持工作流整洁。