1. 程式人生 > >master回滾到某個提交併且保留歷史提交

master回滾到某個提交併且保留歷史提交

一、暴力模式

master如何回滾到某個提交呢?

相信很多人一開始想到的是reset,暴力模式:

先拉一個分支保留當前的master程式碼:

git branch tmp

然後回到master:

git chechout master

回滾到某一個commit:

git reset --hard <commit id>

然後強推:

git push origin -f

這時master將完全回滾到之前的某個commit,之間的commit歷史也會消失。所以這種方式是比較危險的,一般公司裡不會給你強推master的許可權,萬一你強推程式碼把別人的

程式碼給覆蓋了,並且之前也沒有備份master,別人辛苦寫的程式碼就再也找不回了。在極端一些,你甚至可以用強推的方式刪程式碼跑路。。。。。所以這是很危險的!

二、安全模式

下面介紹一種可以保留歷史記錄,只是把這次的回滾當作一次新的程式碼提交:

回到之前的某個提交的程式碼:

git checkout <commit id> -- ./ 

然後提交:

git commit -m "XXXXX"

git push origin