一 worktree 的基本概念和操作
再也不用克隆多個倉庫啦!git worktree 一個 git 倉庫可以連接多個工作目錄 - walterlv的專欄 - CSDN博客
再也不用克隆多個倉庫啦!git worktree 一個 git 倉庫可以連接多個工作目錄 - walterlv
二 語法速覽
-
最簡單的寫法:
git worktree add <新路徑>
將基於當前分支,新建一個 worktree 目錄,新的分支名就是新建目錄的名稱。 -
新建一個指定分支
git worktree add <新路徑> -b <新分支名>
將基於當前分支,新建一個 worktree 目錄,新的分支名是指定的名稱。 -
基於指定分支新建一個指定分支
git worktree add <新路徑> -b <新分支名> <指定分支名>
將基於指定分支,新建一個 worktree 目錄,新的分支名是指定的名稱。
三 注意事項
-
<新路徑>
新路徑一般是類似../myproject-bugfix
這樣的命名,是相對路徑,注意,這里一定是兩個點:
../myproject-bugfix
表示在當前目錄的父目錄新建,這樣才是與原工程目錄平級。(當前,你當前得在原工程的跟目錄中。)
總之,注意相對路徑。 -
使用 git reset --hard 重置新的 worktree
如果使用了git worktree add <新路徑>
最簡單的方法新建,通常分支需要重新命名,基於的分支也要改。
可使用git reset --hard <要基於的分支名>
重置到想要的分支,使用git branch -D <想要刪除的分支名>
刪除自動創建的與目錄名相同的分支。
四 其它廢話
相比復制多個倉庫,肯定是 worktree 的方式更高效。
當然,worktree 不允許兩個 worktree 使用同一個分支。如果有這個需要怎么辦?新建一個分支,reset 到目標分支,再基於這個新分支工作,效果一樣。
但如果你經常需要在兩個目錄中使用同一個分支,那么可能是分支管理或工作方式需要改進。
另外,不使用的 worktree 盡早刪除,並運行 git worktree prune
清理。