是否需要在`git checkout`之前运行`git stash push`?

时间:2019-01-22 23:26:52

标签: git

默认情况下,

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

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

谢谢。

1 个答案:

答案 0 :(得分:1)

如果有未提交的更改将被git checkout覆盖,该命令将报告并中止。在这种情况下,git commitgit stash是必需的。

如果存在未提交的更改,这些更改不会被git checkout覆盖,命令将成功执行,并且更改将溢出到新分支中。如果您不想在新分支中看到这些更改,请在git commit之前使用git stashgit checkout

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