You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需输入路径快速切换Git工作树?

快速切换Git工作树目录的方法

你遇到的报错是因为git checkout main是尝试在当前工作树切换到main分支,但该分支已经被另一个工作树占用了。要实现快速切换到对应工作树目录、无需输入完整路径,试试下面几种方案:

方案一:通用Shell函数

在你的Shell配置文件(比如~/.bashrc或~/.zshrc)里添加以下函数:

g-switch() {
  # 获取当前Git工作树的根目录
  local top_dir=$(git rev-parse --show-toplevel)
  # 获取所有工作树的共同父目录
  local parent_dir=$(dirname "$top_dir")
  # 切换到指定的兄弟工作树目录
  cd "$parent_dir/$1" || exit
}

保存文件后,执行source ~/.bashrc(或对应你的配置文件)生效。之后在任何一个工作树目录下,输入g-switch main就能跳到main/目录,输入g-switch simulator就跳到simulator/,以此类推。

方案二:固定路径别名

如果所有工作树的父目录是固定的,也可以直接写别名,比如假设父目录是/path/to/parent:

alias go-main='cd /path/to/parent/main'
alias go-latex='cd /path/to/parent/latex'
alias go-simulator='cd /path/to/parent/simulator'
alias go-tscnn='cd /path/to/parent/tscnn'

添加到Shell配置文件后生效,之后输入go-main就能直接跳转。

方案三:交互式模糊选择(适合多工作树场景)

如果你装了fzf(终端模糊选择工具),可以用以下函数实现交互式跳转:

g-jump() {
  # 列出所有Git工作树路径,用fzf选择后跳转
  local target=$(git worktree list | awk '{print $1}' | fzf)
  cd "$target" || exit
}

生效后输入g-jump,会弹出所有工作树路径供你选择,选中后自动跳转。

内容的提问来源于stack exchange,提问作者user13343959

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:47:47