2

私はいくつかの作業ツリーを持っています:

$ 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

これを自動的に行うオプションはありますか?

4

1 に答える 1

1

いいえ、これは不可能です。現在の作業ディレクトリはプロセス (この場合はシェル) の属性であり、そこから呼び出されたプロセス (Git など) は親の作業ディレクトリを変更できません。それが起こるのを許すと、多くのソフトウェアが壊れます。

シェルでエイリアスまたは関数を作成できます。たとえばgco、リポジトリのワークツリーがあるかどうかを確認し、ある場合はそこに切り替え、ない場合はそのブランチをチェックアウトします。この操作は完全にシェル内で行われるため、シェルの作業ディレクトリを変更することができます。

于 2020-09-05T16:12:12.087 に答える