Open3
git worktree
worktreeを作成したときにブランチ上どう見えているか確認する。
$ git branch
* main
$ git worktree add ../feature_a
Preparing worktree (new branch 'feature_a')
HEAD is now at 1fcf9da feat: Implement basic TODO application
$ git branch
+ feature_a
* main
$ git worktree list
/path/to/repo 1fcf9da [main]
/path/to/feature_a 1fcf9da [feature_a]
git worktree add
の第2引数にローカルブランチ名を指定することもできるが、しないと現在のブランチから第1引数で指定したディレクトリ名と同じブランチ名を作ってワークツリーを作成する。
feature_a
ワークツリーで作業する。
$ cd ../feature_a
$ touch foo.txt
$ git add ./foo.txt
$ git commit -m "Add foo.txt"
[feature_a d42433b] Add foo.txt
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 foo.txt
$ git log --oneline
d42433b (HEAD -> refs/heads/feature_a) Add foo.txt
1fcf9da (refs/heads/main) Initial Commit
作業後に不要になったワークツリーを削除する。
$ cd ../repo
$ git worktree remove ../feature_a
$ git branch
feature_a
* main
$ git log --oneline feature_a
* d42433b (refs/heads/feature_a) Add foo.txt
* 1fcf9da (HEAD -> refs/heads/main) Initial Commit
$ git worktree list
/path/to/repo 1fcf9da [main]