在使用 git 进行版本控制时,有时候你可能想切换到一个新分支而不携带当前分支的未提交改动。下面是一些方法来实现这一点。
方法 1: 使用 git stash
git stash 命令可以临时保存当前工作目录中的未提交改动。你可以在切换分支前使用 git stash,然后在需要的时候再恢复这些改动。
保存当前未提交的改动:
git stash
切换到新分支:
git checkout new-branch
恢复未提交的改动(可选):
如果你想在原来的分支上恢复未提交的改动,可以切换回去并使用 git stash pop:
git checkout previous-branch
git stash pop
方法 2: 使用 git checkout 的 -m 选项
如果你确实想在切换分支时丢弃当前的未提交改动,可以使用 git checkout 的 -m 选项。
git checkout -m new-branch
该命令会丢弃当前工作目录中的改动并切换到 new-branch 分支。
方法 3: 确保工作目录干净
在切换分支之前,确保工作目录没有未提交的改动。这可以通过提交你的改动或将其存放到暂存区来实现。
提交改动:
git add .
git commit -m "save work in progress"
切换到新分支:
git checkout new-branch
方法 4: 创建新的工作树
如果你需要同时在多个分支上工作,可以使用 git worktree 来创建一个新的工作树。这样可以在不同目录中同时处理多个分支。
创建新工作树:
git worktree add ../new-branch-directory new-branch
切换到新工作树目录:
cd ../new-branch-directory
这将创建一个新的目录并在其中检出 new-branch 分支。你可以在不同的目录中独立地工作,而不会相互影响。
总结
- 使用 git stash 来临时保存未提交的改动。
- 使用 git checkout -m 来丢弃未提交的改动并切换分支。
- 确保工作目录干净,通过提交改动来避免携带未提交的改动。
- 使用 git worktree 来在不同目录中同时处理多个分支。