一、介紹
? ? ? ? 當某次更改完工程后,push了本地倉庫到云端,但是發現有地方改錯了,想撤銷這次推送,或者某次提交就更改了很小一部分,想和本地這次修改的合并為一次推送,省的在云端顯示特別多次提交,顯得非常亂。
二、命令
1. 首先通過git log --oneline
命令查看之前的提交信息
git log --oneline
2. 使用git reset命令回退,--soft會保留本地更改,--hard不會保留本地更改
?意思就是如果你本地更改了,最好用--soft,因為他會保留你現在的更改,如果使用了--hard,他會直接把你本地更改覆蓋,直接退回你填寫的ID那個版本
git reset --soft 要回退到哪次提交的ID
3. 再次使用git log?--oneline命令查看,發現在你填寫的回退ID版本之后的提交都沒了
4.更改完成后,在使用git add 和 git commit 重新提交本地倉庫
5.將本次提交強制推動到云端倉庫,一定要加--force,不然是推送不上去的
git push origin 分支名 --force
這時候發現云端倉庫還是顯示一次提交,相當于你撤銷了上一次提交,只提交了本次,但是云端可以看出來這次提交是強制提交?
這種不僅能撤回一次提交,根據你寫的要回退版本的ID來的,你ID寫的哪個版本,就會在那個版本的基礎上多一次提交。
????????
? ? ? ??