1.deploy分支是生產環境的分支,master是主開發分支。
2.deploy分支有幾個檔案配置和master分支的不一樣,通常都是將master分支合併到deploy分支,並不會改變deploy分支下的設定檔資訊。
3.不小心把deploy分支合併進了master分支,導致master分支下的配置文件被改成了deploy分支下的,並且做了push,遠程master分支下的配置文件也成deploy下的了。
4.改回了master分支下的配置文件,重新做了push,但是現在不敢往deploy分支合併了,因為擔心master分支下的配置會替換掉deploy下的。
現在想恢復master分支之前的版本,以及遠端倉庫內的版本。該怎麼做?
某草草2017-05-02 09:52:50
其實這很容易的,樓主可以先在本地進行回退操作:
透過提交日誌找回先前master的狀態對應的雜湊值
git log
複製其雜湊值,假如是664d6cf35a7。
然後時光穿梭,回到之前的那個狀態
git reset --hard 664d6cf35a7
回退好之後,刪除遠端的master分支:
git push origin --delete master
如果刪除不了的話,可以先在遠端將預設分支設定為另一個分支,如deploy。如果樓主的遠端倉庫在github上的話,可以點選對應倉庫的setting->branches-.default branches,修改即可。
然後再執行上面的指令刪除遠端master分支。
刪除之後,現在就可以重新推送master分支了,這樣會在遠端倉庫重新建立一個master分支。推送好之後,再將遠端的預設倉庫重新修改為master。
現在這個狀態基本上就跟以前一樣了。
大家讲道理2017-05-02 09:52:50
回退本地分支 > 刪除遠端分支 > 推送本地分支 (也就是建立新的遠端分支)
不過這種方法對 master 這類的保護分支並不適用,可以用下面的方法:
回退本地分支 > 強行推送本地分支 (強制推送以覆蓋遠端分支內容)