刪除遠程分支或恢復到某次版本
知道何謂 遠端空間/遠端倉庫 (remote),可以使用ssh來登入並當作local操作指令,那操作直接執行下方介紹[二]
首先了解,你的步驟以及目前的狀態,儘管世界上有多種講法
但是不例外大約分為三種區域
Unstage
檔案正在更新,還未追蹤,或者還在working tree
1 | git add . |
stage
所謂暫存區
1 | git commit |
remote
所謂的遠端
Git 版本為 2.9.0
1 | git version |
會顯示你的版本,這是我得到的結果:
1 | git version 2.9.0.windows.1 |
[一]在 terminal 刪除遠端分支,使用以下方法
無法登入遠端操作指令時,或者懶得整理到正確版本時
1.要先對整理好 commit 的 branch 做備份(不怕一萬,只怕萬一)
2.輸入下面指令,刪除要刪除的遠端分支
1 | git push origin :branch_name |
3.隨即推上整理好的分支即可
1 | git push origin branch_name |
1 | git push [远程名] :[分支名] |
方便記憶方式
1 | $ git push [远程名] [本地分支]:[远程分支] |
如果省略 [本地分支],那就等于是在说“在这里提取空白然后把它变成[远程分支]”
情境題:假設你在github上要整理master的版本,但是太亂想砍掉
先到web登入github把預設master改成其他branch,再執行以上步驟,之後再改回master即可
[二] 修復到某次版本的 commit
需要用到 git reset這個指令
1 | git reset –mixed = git reset-mixed Head = git reset |
後面接指定的 commit 版本像是HEAD~2
,會讓此版本以及上一個版本皆變成 unstage
1 | git reset –soft |
後面接指定的 commit 版本像是HEAD~2
,會讓此版本回復到指定版本的stage狀態
1 | git reset –hard |
(嚴重小心此動作,會無法復原)
PS. 後面接指定的 commit 版本像是HEAD~2
,會讓此版本回復到指定版本的上一個版本內容
修改當前版本的 commit
如果尚未推送至遠端,可以修改本地 commit
1 | git add . |
即可對檔案以及 commit 訊息做重新的編輯
git reset 千萬查清楚來龍去脈
建議自己玩玩看,免得有那麼出差錯,最怕復原後,不知道怎麼復原你的復原更動(好繞口令XD)
Ref: Git如何删除远程仓库的某次错误提交
小的只是個初階GIT使用者,請鞭小力點,那當然歡迎指教和指證。