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

如何基于指定commit hash创建Git worktree并从该提交初始化分支

嗨,这个需求其实很好实现,Git worktree完全支持基于特定提交来创建对应的工作树,而且我们可以顺便把分支也关联上(毕竟如果之后要做提交的话,分支比 detached HEAD 更实用)。下面给你两种常用的操作方式:

方法一:一步到位创建带分支的Worktree

直接通过一条命令就能完成:指定新worktree的本地路径、要创建的新分支名,以及目标commit hash。命令格式如下:

git worktree add <新worktree的本地路径> -b <新分支名> <目标commit hash>

举个实际例子:假设你想在当前仓库的同级目录下创建一个名为old-commit-worktree的工作树,新分支叫fix/from-historic-commit,目标commit的哈希是a1b2c3d,那执行的命令就是:

git worktree add ../old-commit-worktree -b fix/from-historic-commit a1b2c3d

执行完这条命令后,新的worktree会自动切换到那个特定的commit,并且已经关联好了你指定的新分支——之后在这个worktree里做的所有提交,都会直接落到这个新分支上,不会影响主仓库或者其他worktree。

方法二:先看提交内容,再创建分支(适合验证场景)

如果你暂时不确定要不要基于这个commit做开发,只是想先查看内容,那可以先创建一个处于detached HEAD状态的worktree,之后再按需创建分支:

  1. 创建detached状态的worktree:
git worktree add <新worktree路径> <目标commit hash>
  1. 进入这个worktree,创建并切换到新分支:
cd <新worktree路径>
git checkout -b <新分支名>

这种方式适合需要先验证commit内容,再决定后续开发的场景。

一些注意事项

  • 确保你输入的commit hash是有效的,可以通过git log命令确认它的存在;
  • 新worktree的路径不能和现有仓库、其他worktree的路径重叠,否则Git会报错;
  • 当你不再需要这个worktree时,记得用git worktree remove <worktree路径>来彻底清理,避免残留文件占用空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:01:29