English | 简体中文 |
无缝切换分支,保持代码井然有序,轻松跨多个目录运行——简化你的开发流程。
在多个分支间切换可能非常繁琐,容易导致冲突或遗忘提交。Git Worktree Manager 帮助开发者在不同工作目录间快速切换,简化分支管理。
有时需要同时处理不同版本的代码,但切换分支或提交非常耗时。通过使用工作区,你可以在独立目录中并行开发,不会相互干扰。
Git worktree 让你无需离开当前工作区,轻松处理跨分支和提交的多个任务——完美适用于管理复杂项目。 使用 git worktree,你可以创建额外的工作目录,并将它们与不同的分支或提交关联。这样做的好处是可以在不切换分支的情况下同时进行多个任务,方便开发人员处理不同的代码版本。 通过创建一个新的工作目录,我们可以在当前目录和新的工作目录之间切换,而每个目录都可以与不同的分支或提交关联。这使得你可以在每个目录中独立执行 Git 操作,如提交代码、拉取更新等,互不影响。 总结来说,git worktree 提供了一种灵活的方式来管理多个任务或版本,提升开发效率。
Ctrl + Shift + R
开始操作(回到顶部)
(回到顶部)
terminal.external.windowsExec
配置启用的终端,其他平台类似。
{
"terminal.external.osxExec": "iTerm.app",
"terminal.external.windowsExec": "C:\\Program Files\\Git\\bin\\bash.exe",
}
仓库目录/.git/hooks/post-merge
脚本文件中添加脚本
```sh
#!/bin/bash# 获取当前文件夹路径(Unix系统) CURRENT_FOLDER=$(pwd) # windows需要去掉下面的注释,启用 crypath 转换路径 # CURRENT_FOLDER=$(cygpath -w “$(pwd)”)
# 获取当前分支名称 CURRENT_BRANCH_NAME=$(git rev-parse –abbrev-ref HEAD)
# 获取所有 worktree 的列表并逐行处理 git worktree list –porcelain | grep “worktree” | while read -r LINE; do # 提取 worktree 路径 WORKTREE=$(echo “$LINE” | awk ‘{print $2}’)
# windows需要去掉下面的注释,启用 crypath 转换路径
# WORKTREE=$(cygpath -w "$WORKTREE")
# 如果当前目录路径与 worktree 路径相同,则跳过
if [ "$CURRENT_FOLDER" = "$WORKTREE" ]; then
continue
fi
# 获取目标 worktree 的分支名称
TARGET_BRANCH=$(git --work-tree="$WORKTREE" --git-dir="$WORKTREE/.git" rev-parse --abbrev-ref HEAD)
# 如果目标 worktree 的分支与当前分支相同,则进行处理
if [ "$TARGET_BRANCH" = "$CURRENT_BRANCH_NAME" ]; then
echo "Processing worktree: $WORKTREE on branch: $TARGET_BRANCH"
git --work-tree="$WORKTREE" --git-dir="$WORKTREE/.git" reset --merge HEAD
fi done ``` - 这段 post-merge 脚本在 Git 合并操作后,通过将匹配的分支重置为合并后的状态,确保多个 Git worktree 的一致性。
git switch --ignore-other-worktrees
切换任意分支点击 打开议题 查看所有功能建议(和已知问题)
(回到顶部)
参与贡献使开源社区成为学习、启发和创造的绝佳场所。非常感谢你做出的任何贡献。
如果你有任何建议可以改进项目,欢迎你 fork 该项目并创建一个 pull request。你也可以直接打开一个带有 “enhancement” 标签的 issue。
别忘了给这个项目加个星标!再次感谢!
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)以 MIT 许可证发布。有关更多信息,请查看 LICENSE
Jackiotyu - 2504448153@qq.com