git checkout
在工作树目录中保留未提交的更改。那么是否有必要在git stash push
之前运行git checkout
(然后在git stash pop
之后的某个稍后时间运行git checkout
)?或者什么时候有必要,什么时候没有?
我的问题来自https://stackoverflow.com/a/48156644/156458,而且更笼统。
谢谢。
答案 0 :(得分:1)
如果有未提交的更改将被git checkout
覆盖,该命令将报告并中止。在这种情况下,git commit
或git stash
是必需的。
如果存在未提交的更改,这些更改不会被git checkout
覆盖,命令将成功执行,并且更改将溢出到新分支中。如果您不想在新分支中看到这些更改,请在git commit
之前使用git stash
或git checkout
。
与其他命令(例如git pull
和git rebase
)不同,git checkout
没有选项--autostash
,因为它毫无意义:在大多数情况下,您不想自动执行切换到新分支时,git stash pop
。