Git拉取不下代码,认识stash命令
前言
- 常网IT戳我呀!
- 常网IT源码上线啦!
- 如果是海迷,RED红发剧场版有需要可关注我主页公众号回“海贼王red”领取。
- 本篇录入Git专栏,各位看官感兴趣可移步🚶。
- 最近在开发过程中,提交代码,发现报错:
Your local changes to the following files would be overwritten by merge
?
多去运动吧。 强身健体吧。 免疫力++吧。
一、发现问题
看着自己堪称如诗般的代码,兴高采烈地提交代码让其他人学习一下。
提交之前拉取下代码,发现竟然报错了。
下面我们进行分析一下。
二、进行分析
🙋报错原因是什么?
🙋🏻♂️团队有人提交了package-lock
文件,我在安装依赖的时候,也生成了package-lock
文件,那么我pull拉取的时候,就会报这个错误。
error:
Your local changes to the following files would be overwritten by merge
不是说package-lock
文件最好提交上去吗?
🙋🏻♂️是的。
但因为我们每个人的项目的node
版本不一样,前期没有做统一版本。
所以在这里,我们package-lock
是没提交上去。
但因为是新人,不知道lock是不能提交上去的,所以才导致问题所在。
每个项目的版本环境不同,还是要看项目,新项目的话建议package-lock
文件提交上去,团队环境达成一致即可。
那么,我们已经知道问题所在,接下来就解决掉。
知己知彼,百战百胜。
三、解决方案
有两个解决的方案。
根据是否要保存本地修改。
3.1 git stash
git stash #封存修改
git pull origin master
git stash pop #把修改还原
在这里,我选择git stash
。
然后再重试pull
拉取,会发现成功了。
讲解一下 stash
这些stash
,本地刚才修改的代码将会被暂时封存起来。
备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
也就是我的代码被暂存起来,拿上一次的文件,那就和远程的一样了,就不会冲突了,重新pull就成功了。
git stash pop
要用到本地修改时,把stash
内容应用到本地分支上。
stash
中的内容被弹出。如果保存了多个暂存内容,那么弹出顺序是先进后出的(栈)。
如果不想弹出内容,但仍然把stash
内容应用到本地分支上:
git stash apply
这样stash
中的内容不会被弹出。
此外,可以手动删除stash
中的内容:
# 删除指定的一次stash内容,名称可以通过git stash list获得
git stash drop xxx
# 删除所有stash内容 / 清空Git栈
git stash clear
3.2 git checkout .
这个是是清空你的文件修改。
# 丢弃所有本地未提交的修改
git checkout .
后记
Git知识点还有很多前所未有的冒险等着我们去遇见。
遇到问题不要慌,先了解问题所在,排查问题,解决问题并记录问题以免下次遇到。
👍 如果对您有帮助,您的点赞是我前进的润滑剂。
以往推荐
相关文献
git使用学习七、解决报错error: Your local changes to the following files would be overwritten by merge
error: Your local changes to the following files would be overwritten by merge 解决方案
原文链接
转载自:https://juejin.cn/post/7176068404661452860