Visual Studio中Git新分支变更自动同步至master分支的原因及禁用配置方法咨询
嗨,这个问题我之前也碰到过,其实是Git的工作区、暂存区和分支之间的交互逻辑导致的,下面给你拆解原因和解决办法:
问题原因分析
主要有两种常见情况会导致这个现象:
- 未提交/暂存的变更:你在新分支中编写的内容,既没通过
git add暂存到暂存区,也没用git commit提交到新分支的版本库。此时这些修改只存在于本地工作区,当切换回master分支时,只要master分支中对应文件的版本和新分支切换前的版本一致,Git就不会覆盖工作区的内容,所以在master里还能看到这些修改。 - 未被Git追踪的新文件:如果是新建的文件,还没执行
git add让Git开始追踪它,那这个文件完全独立于Git的分支体系之外。不管切换到哪个分支,这个文件都会留在本地工作区,自然在master分支下也能看到。
解决办法
针对不同场景,你可以用这些方式避免修改同步到master分支:
- 提交变更到新分支(推荐):在新分支中完成修改后,先执行
git add .(或指定具体文件名)暂存所有修改,接着运行git commit -m "新增XXX功能/修复XXX问题"把变更提交到当前新分支。完成提交后再切换回master分支,Git就会自动将工作区切换为master分支的版本,新分支的修改就不会出现在master里了。 - 暂存未完成的修改:如果你的修改还没写完,不想马上提交,可以用
git stash命令把当前工作区的修改暂存起来。这时候工作区会恢复干净状态,切换到master分支就看不到这些修改了。之后切回新分支时,执行git stash pop就能恢复之前的修改继续开发。 - 确保新文件被Git追踪:对于新建的文件,一定要先执行
git add 文件名或git add .让Git追踪它,之后再进行提交操作,这样文件就会和当前分支绑定,切换分支时Git会正确处理不同分支的文件版本。
内容的提问来源于stack exchange,提问作者Alpharius




