git如何撤销上次提交
git push提交完数据后后悔了怎么办?
写在前面的话重要:删除上次提交后本地和远程仓库的数据都将删除,所以删除上次提交前,记得备份备份备份数据!!!
1.直接删除上次提交,使用reset命令
git reset --hard HEAD^
git push origin master -f
HEAD是指向最新的提交,上一次提交是HEAD^,上上次是HEAD^^,也可以写成HEAD~2 ,依次类推。
1.1删除上次提价还可以使用revert命令
git revert HEAD
git push origin master
1.2 两者差别:
revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;
reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。
2. git log后怎么退出?
使用git log之后无法回到主页面,如下图所示,最后只能暴力关闭git bash。
解决方法其实很简单,输入字母Q即可退出。
git commit但是没有git push,想要修改commit的信息怎么办?
1. 查看最近3次commit的简要信息,输出信息为:简短commitID commit_message,可以根据需要查看最近n次的提交,也可以git log -3
git log --oneline -3
2. 如果需要修改从上往下第2个commit_message,这里的简短commitID为上面输出信息的第3个,以此类推。
git rebase -i <简短commitID>
3. 按insert键,进入编辑模式,将想要修改的提交前的pick改为reword,如果需要修改多个,也可以将对应的多个pick改为reword
4. 编辑完成后按ESC键退出编辑模式,再按 shift + : 然后输入wq(w是保存,q是退出),最后按回车键
快捷操作:
1. 修改最近一次的commit 信息,输入以下命令进入vim编辑模式,修改最近一次的commit信息
git commit --amend
2. 退出保存 :wq
3. 执行 git push