Git中从分支A创建分支B后未提交变更在A中可见,是否正常?如何处理?
Git分支切换后未提交更改跨分支显示的问题
我的项目包含两个分支:
- master
- A
我通过git checkout -b B A命令从分支A创建了分支B。之后我在分支B中进行了一些更改,但这些更改在切换到分支A后也会显示出来。
补充说明:我没有提交分支B中的更改,切换到分支A后能看到这些更改。
问题
- 请问这是Git的正常行为吗?
- 如果我想让分支B中的更改不显示在分支A中,应该怎么做?
解答
这是Git的正常行为吗?
是正常的。Git里未提交的更改属于工作区或暂存区,并不归属某个特定分支。当切换分支时,只要未提交的更改和目标分支的文件没有冲突,Git会保留这些更改,让它们在新分支中继续可见——本质上这些更改还没被绑定到任何分支,只是存放在本地工作目录和暂存区里。
如何让分支B的更改不显示在分支A中?
有几种可行方案:
- 提交分支B的更改:在分支B中执行
git add .暂存所有更改,再执行git commit -m "描述你的更改"。提交后,这些更改会被记录在分支B的提交历史中,切换到分支A时就不会看到它们了。 - 暂存分支B的更改:如果不想立即提交,用
git stash命令把当前未提交的更改暂时存起来。切换到分支A后,这些更改会被隐藏;之后切回分支B,执行git stash pop就能恢复之前的更改。 - 创建独立工作区(Git 2.5+):使用
git worktree add <新目录路径> B命令,为分支B创建一个独立的工作目录。这样分支B的更改会在单独的文件夹中,和分支A的工作区完全隔离,切换分支时不会互相影响。
内容的提问来源于stack exchange,提问作者Joey
相关产品推荐
相关产品推荐

