我正在学习Git,跟着教程走。我在分支seo_title上有未提交的更改,对于mission.html文件。我执行了git checkout master
,期望会看到关于更改未提交的警告信息,例如Changes not staged for commit, no changes added等等,但是实际上切换分支时没有出现这些警告信息,而是显示了以下消息:
M mission.html
Switched to branch 'master'
当我运行git diff mission.html
命令时,它显示出来的结果是工作目录中仍包含我在切换到其他分支时所做更改的内容。
我错过了什么吗?
值得一提的是,我正在Windows上使用Git Bash。
编辑:mission.html文件的更改也没有被加入到暂存区域。
编辑2:我以为得票最高的答案是正确的,但进一步调查后发现它与我看到的行为不符。 以下是我正在进行的操作的更详细描述:
top_directory(master) > git branch new_branch_1
top_directory(master) > git branch new_branch_2
top_directory(master) > git checkout new_branch_1
< p >打开 notepad++,修改 resources.html 文件,保存< /p >top_directory(master) > git status
# On branch new_branch_1
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed
# (use "git checkout -- <file>..." to discard changes in wo
#
# modified: resources.html
#
no changes added to commit (use "git add" and/or "git commit
top_directory(new_branch_1) > git checkout new_branch_2
我希望git能够提醒我去存储或提交,因为new_branch_1和new_branch_2有不同版本的resources.html文件,但是它没有任何警告就直接切换到了新分支,并且还将未提交的更改一并带来了:
M resources.html
Switched to branch 'new_branch_2'
top_directory(new_branch_2) > git status
# On branch new_branch_2
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: resources.html
#
no changes added to commit (use "git add" and/or "git commit -a")
有没有一种模式或设置,可以使其表现为这样而不是警告?还是我对场景仍然存在误解?
编辑3:我现在明白了。排名第一的答案是正确的,可以看看我的最后一条评论。