git - 从不同的工作树签出分支时,我可以强制 git 更改目录而不是致命错误吗?
问题描述
我的工作树很少:
$ git worktree list
/home/kes/work/projects/video/app 7509c7f [dev]
/home/kes/work/projects/video/second c12cdf9 [newbr]
当我git checkout newbr
从dev
分支(工作树)做时,我想切换到不同的目录,而不是得到错误:
$ git checkout newbr
fatal: 'newbr' is already checked out at '/home/kes/work/projects/video/second'
目前我做:
cd /home/kes/work/projects/video/second
是否有自动执行此操作的选项?
解决方案
不,这是不可能的。当前工作目录是一个进程(在本例中为您的 shell)的属性,从它调用的进程(如 Git)不能更改其父级的工作目录。允许这种情况发生会破坏很多软件。
你可以在你的 shell 中创建一个别名或函数,比如说gco
,它会查找你的存储库是否有一个工作树,如果有,切换到它,如果没有,检查那个分支。由于该操作完全在您的 shell 中进行,因此可以更改 shell 的工作目录。
推荐阅读
- android - 使用 RoleManager API 更改默认拨号程序的系统对话框不会第二次出现
- c++ - 用 sublime text 编译 c++ 文件
- javascript - 如何更新属于浏览器本地存储的特定 json 数据对象
- jquery - 无法使用 Javascript 打开 Bootstrap 下拉菜单
- html - 即使指定了索引,XPath $x() 函数也会返回数组
- swiper - 在 Swiper 的垂直模式下设置正确的高度
- c# - 制作索引 0 返回空白字符串的枚举
- ios - 获取 Date() 的下一个工作日
- flutter - 如何在 Flutter 中的 custompaint 上重叠图像?
- android - 如何找到当前设备位置?