【发布时间】:2018-01-23 09:51:35
【问题描述】:
我在我的主分支中做了一些更改,但没有提交它们,我签出了开发分支。我原以为会抛出一个错误,但我在 master 分支中的更改并没有与 development 分支合并。
$ git checkout development
Switched to branch 'development'
M pom.xml
Your branch is up-to-date with 'origin/development'.
我期待的是以下错误,因此我可以在签出之前存储或提交我的更改:
error: You have local changes ....; cannot switch branches.
有人知道它为什么会发生,或者我该如何防止它再次发生?
【问题讨论】:
-
更准确地说,我最初的结帐命令是一个错误,我不应该这样做。这就是为什么我期望抛出一个错误。这是 git 的默认行为吗?
-
是的,AFAIK 这是 git 的默认行为。
-
工作树中的更改不属于任何分支,除非您提交它们。当您签出另一个分支时,如果它们与新分支中受影响文件的内容不冲突,Git 会保留它们。
-
@axiac 是的,这是有道理的。
-
另见stackoverflow.com/q/22053757/1256452(不确定这个问题是否与那个问题重复)