使用工作树

你正在开发一项新功能,而你的老板要求你立即修复一些东西。你通常可能希望使用 git stash 暂时存储你的更改。但是,此时你的工作树处于混乱状态(新文件,移动文件和删除的文件以及散落的其他零碎文件)并且你不想打扰你的进度。

通过添加工作树,你可以创建临时链接工作树以进行紧急修复,完成后将其删除,然后恢复先前的编码会话:

$ git worktree add -b emergency-fix ../temp master
$ pushd ../temp
# ... work work work ...
$ git commit -a -m 'emergency fix for boss'
$ popd
$ rm -rf ../temp
$ git worktree prune

注意:在此示例中,修复程序仍在紧急修复分支中。此时你可能想要 git mergegit format-patch 然后删除紧急修复分支。