如何以分离头指针模式检出Git分支最新提交(规避工作树限制)
解决Git Worktree限制下自动化检出分支最新提交为分离头指针的方案
我之前也碰到过git worktree没法直接checkout分支的情况,刚好有几个实用的自动化方法能搞定,再也不用手动查log复制哈希了:
一步式命令组合完成操作
借助git rev-parse可以把分支名直接解析成对应最新提交的哈希值,再通过命令替换把哈希传给git checkout,执行这条命令就能直接切换到目标分支的最新分离头指针状态:git checkout $(git rev-parse <你的分支名>)比如你要操作的分支是
dev,就改成git checkout $(git rev-parse dev),全程不用手动去查提交哈希。配置Git别名简化重复操作
如果需要频繁做这个操作,可以给Git加个自定义别名,以后只用敲短命令就行:- 打开全局
.gitconfig文件(或者当前仓库内的.git/config) - 添加以下配置内容:
[alias] checkout-detached = !git checkout $(git rev-parse "$1") - 保存后,以后要切换到某分支的最新分离头指针,直接执行:
git checkout-detached <你的分支名>
- 打开全局
这两种方法都是通过直接指定提交哈希绕开了git worktree对分支检出的限制,和你手动执行git checkout 392847的效果完全一致,还实现了自动化,不用再手动复制粘贴哈希啦。
内容的提问来源于stack exchange,提问作者Ferrybig
相关产品推荐
相关产品推荐

