使用Git时如何在本地同时操作两个分支,避免未提交改动相互干扰?
原因说明
未提交的工作区、暂存区改动不属于任何Git分支,只要改动内容和目标分支的对应文件没有冲突,切换分支时这些改动会默认跟随到新分支的工作区,这是Git的正常设计。
避免方法
根据你对b1分支改动的后续处理需求,选择对应操作即可:
- 如果b1的改动尚未完成,后续还要继续开发:
切换回b1分支,执行git stash命令暂存当前改动,执行后工作区会恢复到改动前的状态,此时再切回master分支就不会携带b1的改动。后续需要恢复改动时,切回b1执行git stash pop即可还原之前的修改,存在多个暂存记录时可以用git stash list查看所有暂存内容按需恢复。 - 如果b1的改动已经开发完成:
在b1分支执行git add <改动文件名>、git commit -m "提交说明"将改动提交到b1分支,提交后的修改属于b1分支的提交记录,再切master就不会被携带。 - 如果b1的改动不再需要:
在b1分支执行git restore <改动文件名>(Git 2.23及以上版本支持),或旧版本执行git checkout -- <改动文件名>丢弃对应改动,之后再切换分支即可。
补充说明
如果未提交的改动和目标分支的对应文件内容存在冲突,Git会直接阻止分支切换,提示你先处理改动(提交/暂存/丢弃)后再操作。
内容的提问来源于stack exchange,提问作者Sourav Kannantha B
相关产品推荐
相关产品推荐

