Rollback changelist是很常做的事情,不過在git這種分散式控制系統就有點麻煩了
假設我們現在有這樣的Commit history
1 | $ git log --oneline |
而我們現在要退回ver 2
該怎麼做
危險的作法
直接開大絕
1 | $ git reset 10dd293 --hard |
然而自己一個人玩玩還行,團體行動絕對沒有人建議這麼做
安全的作法
1 | $ git checkout 10dd293 -b v2 # 切換新分支 |
可以看見HEAD指向v2的new commit了,比較一下
1 | $ git diff HEAD..10dd293 |
然後可以把v2推向remote了
1 | $ git push origin master |
三者等價