先讲讲标题这个情景吧,
此时的你已经做了如下操作: git add/ git commit -m '[YOUR LOG]' / git push
结果:Git push失败,提示你先git pull,因为远程库有新的更新(某个同事在你写代码期间提交了新的代码),导致你本地库落后了。但是你git pull也会失败,提示你先git psuh,是不是很抓狂?教你一招!!!
解决方法:
1.先备份你修改过的本地项目到另外一个文件夹(只需要你改动的那部分文件)
2.输入 git log 查看commit日志,找到最新的提交的commit_id
3.输入git reset - -hard commit_id (此时你之前在本地的修改的代码将被删除)
4.再把刚才的项目复制过来
5.1.git add 把你的项目添加到工作区
5.2.输入git stash save 'your message...' 保存并隐藏掉工作区和暂存区的进度
5.3.输入 git pull 从代码库拉取更新
5.4.输入 git stash pop stash@{版本号} (默认为最新的版本号)
5.5.然后再git add git commit git push 就行了
场景二:我们有时会遇到这样的情况,正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,我们该怎么办呢?
解决办法:
1. git add 将你的进度先提交到暂存区里
2. git stash 获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。(如果使用git stash前文件都是unstage状态的话,必须要git add)
3. 切换分支去修改bug
4. 修改完bug切回dev分支,使用git stash pop 将你保存的代码恢复继续开发(注意:建议先git stash list 确认一下自己保存的代码版本号,然后git stash pop stash@{版本号},以免其他人在你离开期间也保存了代码)