我可以强制 git 在检查不同工作树的分支时更改目录而不是致命错误吗?
May I force git to change directory instead of fatal error while checking out branch from different 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 out at '/home/kes/work/projects/video/second'
目前我是:
cd /home/kes/work/projects/video/second
是否有自动执行此操作的选项?
不,这不可能。当前工作目录是进程的一个属性(在本例中为您的 shell),从它调用的进程(如 Git)不能更改其父进程的工作目录。允许这种情况发生会破坏很多软件。
您可以在您的 shell 中创建一个别名或函数,比如 gco
,它将查找您的存储库是否有工作树,如果有,切换到它,然后如果没有,请检查该分支。由于该操作完全发生在您的 shell 内,因此可以更改 shell.
的工作目录
我的工作树很少:
$ 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.