Git分支切换后未提交变更跨分支可见相关问题咨询
Git分支切换与未提交变更的处理问题解答
问题1:若在dev分支执行全量变更提交,这些来自dev-crud的变更是否会被包含?
是的,这些变更会被完全包含进去。因为Git里的未提交变更(不管是工作区的修改还是暂存区的内容)并不绑定在某个分支上,而是属于当前的工作目录。当你从dev-crud切换到dev分支时,Git检测到这两个分支在这些变更文件上没有冲突,就会直接把未提交的修改带到dev分支的工作区中。这时候如果在dev分支执行git commit -a或者git add . && git commit,原本属于dev-crud的修改就会被提交到dev分支的历史里,直接破坏你两个分支独立开发的计划。
问题2:我是否应先提交dev-crud分支的变更再切回dev分支?我的需求是让两个分支保持独立开发。
必须先处理dev-crud的未提交变更,再切换分支,这样才能保证两个分支的开发状态完全独立。根据你的修改进度,有两种合适的处理方式:
如果修改已经有阶段性成果,适合提交:
先切回dev-crud分支,完成提交操作:git checkout dev-crud git add . git commit -m "feat: 完成CRUD模块部分基础功能开发"提交完成后再切换回dev分支,此时dev分支的工作区就是干净的,不会带有dev-crud的任何修改。
如果修改还未到可提交的程度(比如是半成品):
可以用git stash暂存当前的未提交变更,相当于把修改临时“藏”起来:git checkout dev-crud git stash现在切换到dev分支就不会有任何额外变更了。等之后回到dev-crud继续开发时,用
git stash pop就能把暂存的修改恢复到工作区,继续你的开发工作。
额外说明一下:之所以切换分支会带过来未提交变更,是因为Git的工作区是全局共享的,分支只是指向不同的提交快照,未提交的内容不属于任何分支,所以只要文件没有冲突,切换分支时就会被携带过去。
内容的提问来源于stack exchange,提问作者Tiggyboo
相关产品推荐
相关产品推荐

