Git:如何撤銷已經提交的代碼


場景一:

徹底完了,剛線上更新的代碼出現問題了,需要還原這次提交的代碼!
做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

更多參考:
https://blog.csdn.net/asoar/article/details/84111841


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM