我只是在学习 Git,正在学习一个教程。我在分支 seo_title 中,我对文件mission.html 进行了未提交的更改。我确实git checkout master
希望收到有关更改未暂存以进行提交,未添加更改等的警告,但是它继续前进并使用以下消息切换了分支:
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
(打开notepad++修改resources.html,保存)
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:我现在明白了。评价最高的答案是正确的,请参阅我对该答案的最后评论。