一、场景一:git提交代码到服务器了,但是被要求Abandoned掉导致代码没有合入仓库,但是本地又想保留此次修改的代码,并且还要同步服务器的更改。
二、场景一总结的最快解决办法:
本地撤销提交,保留修改:
使用git reset --soft撤销最后一次提交,但保留工作目录中的修改:git reset --soft HEAD~1
HEAD~1表示撤销最后一次提交。--soft选项会撤销提交,但保留修改内容,修改会变为暂存状态(即git add后的状态)。
再隐藏本地修改:
git stash再同步服务器代码:
repo sync- 再合并本地修改:
- git stash list
- git stash apply stash@{0}
======================================
场景二:git push还未合入,执行repo sync之后导致本地代码丢失。
场景二:解决办法:
1、先找回提交:git reflog,找到commitid
2、确认一下内容是不是你要的代码:git show commitid
3、捡取到当前分支: git cherry-pick commitid