有时我在一个功能分支中,但我做了一个不相关的更改,我想在主分支中看到它。通常我可以这样做:
git checkout master
git commit -m "..." filename
但有时候当我进行检出时,会收到警告说有本地更改,因此我无法切换分支。
为什么这种情况只会有时发生?当我看到这个消息时,是否有解决方法?也许可以使用stash?
git checkout master
git commit -m "..." filename
但有时候当我进行检出时,会收到警告说有本地更改,因此我无法切换分支。
为什么这种情况只会有时发生?当我看到这个消息时,是否有解决方法?也许可以使用stash?
正如Devin Ceartas所提到的,当切换分支会更改您已经在本地更改的某些文件时,就会发生这种情况。(如果您对一个不会被更改的文件有本地更改,或者添加了既不存在于分支也不存在于主干上的新文件,则Git不会抱怨。)
解决方法有两种:
使用"git stash"保存您的更改,切换到主干,然后再用"git stash apply"恢复它们。最后提交更改。
先提交您想要保留在分支上的更改,然后使用"git stash"保存其他更改(如果有的话),切换到主干,然后在主干上使用cherry-pick命令来应用该更改。
我也见过这种情况。我认为问题在于当你的本地更改会与其他分支中的某些内容发生更改时(而不是其他分支中没有的新文件),就会出现这种情况。你可以在不同的目录中始终检查其他分支。