在从不同的工作树签出分支时,是否可以强制git更改目录而不是致命错误?
我几乎没有工作树:在从不同的工作树签出分支时,是否可以强制git更改目录而不是致命错误?,git,git-checkout,git-worktree,Git,Git Checkout,Git Worktree,我几乎没有工作树: $ git worktree list /home/kes/work/projects/video/app 7509c7f [dev] /home/kes/work/projects/video/second c12cdf9 [newbr] 当我从dev分支(工作树)执行git checkout newbr时,我希望切换到不同的目录,而不是获取错误: $ git checkout newbr fatal: 'newbr' is already checked ou
$ git worktree list
/home/kes/work/projects/video/app 7509c7f [dev]
/home/kes/work/projects/video/second c12cdf9 [newbr]
当我从dev
分支(工作树)执行git checkout newbr
时,我希望切换到不同的目录,而不是获取错误:
$ 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的工作目录