1.当写完一堆代码后,发现这堆东西根本没办法提交(产品改了需求或者有比较严重的错误),此时如果没有commit(没有commit自然也不能push),可以通过以下命令行去丢弃修改(亲测可用):
git clean -df
git checkout -- .
参考链接:https://stackoverflow.com/questions/52704/how-do-i-discard-unstaged-changes-in-git
如果使用的是idea,也可以使用集成的revert功能,右键点击project工程->Git->Revert,然后会列举出所有的修改内容,勾选所需要的取消。这种方式可能更加直观。
2.依然是以上的情况,但是发现代码已经commit了,只不过还没有push:
如果需要保留本次修改的内容,并且撤销最近一次的commit,使得最后push的时候只会显示一次commit记录:
git reset --soft HEAD~1
这样子做的好处是使得git提交历史记录更加清晰明了,方便自己和其他人了解修改,而且如果改一个东西多次commit就显得极其不专业,所以大家push的时候一定要慎重点。但如果你想完全丢弃本次commit的提交内容,则可以输入以下命令行:
git reset --hard HEAD~1
如果使用的是idea编辑器,也可以在右下角直接把这个本地分支删除了,从远程仓库再拉一次,确保完全一致。
参考链接:https://stackoverflow.com/questions/3197413/how-do-i-delete-unpushed-git-commits