git分支切换提示签出会覆盖本地更改该怎么办

签出会覆盖本地更改
最近一个项目,master分支在本地,有个新的板块要开发,创建了分支contract。在contract分支上开发时想去主分支master上修改东西。但是contract分支上的修改不想提交,在切换到主分支时提示:签出会覆盖本地更改。咋办?
原因:如果当前分支所做的修改没有提交就切换去其他分支也会看到相同的修改,所以解决这个问题有两个办法。
解决办法:
1、用 git add和 git commit提交修改,只要用 git status 检查工作区和暂存区是干净的就可以了。
2、那如果我当前分支上的工作还没做完,不能提交,但又想去其他分支,这时候可以把当前分支的工作现场隐藏起来。用 git stash隐藏当前工作现场,
 git stash
这个时候用 git status 查看工作区是干净的,
git status
所以就可以放心地去其他分支了。用 git stash list可以查看隐藏起来的工作现场
git stash list
恢复工作现场的两种方法:
1、用 git stash apply恢复,但是恢复后,stash 内容并不删除,需要用 git stash drop来删除;
git stash apply
git stash drop
2、用 git stash pop,恢复的同时把stash内容也删了,这时候用 git stash list就看不到任何 stash 内容了

可以多次 stash ,恢复的时候,先用 git stash list查看,然后用 git stash apply stash@{0}或者 git stash pop stash@{0}恢复指定的stash

1.没有add,也没commit 切换分支修改的内容在另一个分支上也有
(有时候也无法切换分支,原因如切换时会提示会覆盖另一个分支文件的内容,也可强制切换git checkout branchname -f ,最好不要强制切换,会丢失之前分支的修改内容,可以先stash或commit,再切换)
2.add,但没有commit 切换分支,修改的内容在另一分支上也有(有时和情况1一样无法切换)
3. add并且commit 切换分支,在另一个分支就看不到修改内容了

原因:一个本地的git repo只有一个工作区和暂存区,但是有多个分支的提交区,而我们的checkout只是将HEAD指针从一个分支切换到另一个分支。

  • 13
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Git切换本地分支时,可以按照以下步骤进行操作: 1. 首先,使用命令`git branch`查看当前存在的本地分支,确认要切换的目标分支是否已经存在。 2. 如果目标分支已存在,可以直接使用命令`git checkout <branch_name>`切换到目标分支。其中,`<branch_name>`是目标分支的名称。 3. 如果目标分支不存在,可以使用命令`git branch <branch_name>`创建一个新的本地分支,并通过`git checkout <branch_name>`切换到该分支。 需要注意的是,在切换分支前,建议先将当前分支的修改提交(commit)或者保存(stash),以确保代码的完整性和一致性。 引用参考内容: GIT切换分支命令 1.查看远程分支2.查看本地分支3.切换分支 要先commit还是先pull? 场景一:本地分支之间的切换场景二:本地分支和远程分支之间同时更新代码场景三:本地和远程分支之间切换总结 这次,我们加一个main方法,在里面添加一行代码,然后,我们切换到master分支:出现master分支上的GitTest类将被重写的提示,我们选择smart checkout,提示是否重写,我们选择cancel:这样,本地maser分支上的代码就不被dev覆盖掉了:然后,我们切换回dev分支GitTest类就不见了!!!可以发现,代码已经丢失。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Git切换分支命令](https://blog.csdn.net/CodeSheep1/article/details/118223697)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Git分支切换的正确操作,你真的吗?](https://blog.csdn.net/eclipse1024/article/details/115052936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值