場景一:
徹底完了,剛線上更新的代碼出現問題了,需要還原這次提交的代碼!
做push操作了,但是我想撤回來
命令方式:
1.輸入git log 查看所有提交的版本
注意:黃色字體中 commit后面的一串碼就是每一個版本號對應的碼
2.回退到指定版本
== 注意:--hard 刪除工作空間改動代碼,撤銷commit,撤銷git add . ==
git reset --hard 版本號
reset是指將HEAD指針指到指定提交,歷史記錄中不會出現放棄的提交記錄。
3.推送代碼
git push origin master -f
場景二
例如:
寫完代碼后,我們一般這樣
git add . //添加所有文件
git commit -m "本功能全部完成"
執行完commit后,想撤回commit,怎么辦?
說一下個人理解:
HEAD^的意思是上一個版本,也可以寫成HEAD~1
如果你進行了2次commit,想都撤回,可以使用HEAD~2
至於這幾個參數:
--mixed
意思是:不刪除工作空間改動代碼,撤銷commit,並且撤銷git add . 操作
這個為默認參數,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一樣的。
--soft
不刪除工作空間改動代碼,撤銷commit,不撤銷git add .
--hard
刪除工作空間改動代碼,撤銷commit,撤銷git add .
注意完成這個操作后,就恢復到了上一次的commit狀態。
順便說一下,如果commit注釋寫錯了,只是想改一下注釋,只需要:
git commit --amend
此時會進入默認vim編輯器,修改注釋完畢后保存就好了。
或者在IDEA中操作:
選soft 或者 mixed 都可以,這個你本地開發的代碼不會丟失。
查看代碼已經撤回了
4.git push 重新提交會報錯;
把撤回的狀態推送到線上倉庫里,因為此時只是在本地撤回代碼了,還沒有同步到線上
這是因為撤回后,本地倉庫里的版本小到線上倉庫的,所以被拒絕
下面強推一下就可以了,
5.使用git push --force
執行完上面的命令后,線上倉庫里的提交就被撤回了。
然后,自己在本地再修改代碼,測試好了,再重提交代碼
add .
add commit -m"edit code"
add pull
add push
轉載於:https://blog.csdn.net/weixin_38750084/article/details/103164813?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight
轉載於:https://www.cnblogs.com/yalong/p/9889844.html