首页 > 解决方案 > 是否有必要在`git checkout`之前运行`git stash push`

问题描述

git checkout默认情况下,只保留工作树目录中未提交的更改。那么是否有必要在git stash push 之前运行git checkout(然后git stash pop在之后的某个时间点运行git checkout)?或者什么时候需要,什么时候不需要?

我的问题来自https://stackoverflow.com/a/48156644/156458并且更笼统。

标签: git

解决方案


如果有未提交的更改将被命令覆盖,git checkout该命令将抱怨并中止。在那种情况下git commit还是git stash有必要的。

如果有未提交的更改不会被命令覆盖,git checkout则该命令成功并且更改溢出到新分支中。如果您不想在新分支中git commitgit stash之前看到这些更改,请使用git checkout.

不像其他命令(如git pullgit rebasegit checkout没有选项--autostash,因为它没有意义:在大多数情况下,您不想git stash pop在切换到新分支时自动执行。


推荐阅读