1.背景
工作中经常面临着一些临时任务插进来与现有工作同时进行,自己在当前工作进行了一半。重新拉分支开发,无法及时同步主分支更新(自己或他人提交代码),将来merger的时候可能有很多冲突。这个时候可以考虑用git worktree,共用同一个git信息,及时同步主分支内容,方便代码合并。
2. 具体操作
bash
# 假设你的base branch是master
# 创建一个新的分支
git checkout -b feature/new-optimization
# 切换回base branch:master
git checkout master
# 添加 worktree:在../project-new-optimization目录下添加feature/new-optimization分支代码
git worktree add ../project-new-optimization feature/new-optimization
#去新的代码目录进行开发
cd ../project-new-optimization
# 新分支提交改动,不需要push
git add .
git commit -m "your-commit-message"
# 主分支同步最新代码
cd ../project
git fetch origin
git pull origin master
# 新分支rebase代码,保证代码提交记录是线性的,可能需要解决冲突
cd ../project-new-optimization
git rebase master
# 主分支合并,可能需要解决冲突
cd ../project
git merge feature/new-optimization
# 推送
git push origin master
# 删 worktree
git worktree remove ../project-scroll-optimization
# 删分支
git branch -d feature/scroll-optimization