問題:
某天,所有的開發檔案已經在dev分支上,但是這時候,線上出了乙個問題,需要及時修復,於是從master分支上,拉了乙個bug分支,進行處理,master分支本應合併bug分支,結果合併了dev分支,而且還commit,並推到了遠端的master分支,這時候才發現出了問題,於是乎,問題就來了
方法一:無法強推
1.找到最後一次提交到master分支的commit_id,即merge前的commit_id,也就是目標要回退到的commit_id
2.執行回退
git reset --hard commit_id
#執行完成後,此時本地已經回退到了上一次提交的版本,但是遠端仍然是被改變的版本。
3.重新建立乙個分支,這時候的分支就是上一次提交的**
git checkout -b newmaster
4.推到對應的遠端newmaster
git push origin newmaster:newmaster
5.這個時候相當於備份做好了,接下來就可以刪除本地及遠端的master分支
git branch -d master
git push --delete origin master
6.從newmaster分支,重新在建立master分支,並推向遠端
git checkout -b master origin/newmaster
git push master:master
7.done!
方法2:需強推遠端
1.找到最後一次提交到master分支的commit_id,即merge前的commit_id,也就是目標要回退到的commit_id
2.執行回退
git reset --hard commit_id
#執行完成後,此時本地已經回退到了上一次提交的版本,但是遠端仍然是被改變的版本。
3.強推遠端
git push origin head --force #遠端提交回退
4.done!
git撤銷本地修改與回退版本
1.使用 git checkout 撤銷本地修改 即放棄對本地已修改但尚未提交的檔案的修改,還原其到未修改前的狀態。注意 已 add commit 的檔案不適用個方法,應該用本文提到的第二種方法。命令如下 git checkout 撤銷對所有已修改但未提交的檔案的修改,但不包括新增的檔案 git c...
git 撤銷本地修改與回退版本
即放棄對本地已修改但尚未提交的檔案的修改,還原其到未修改前的狀態。注意 已add commit的檔案不適用個方法,應該用本文提到的第二種方法。命令如下 git checkout 撤銷對所有已修改但未提交的檔案的修改,但不包括新增的檔案 git checkout filename 撤銷對指定檔案的修改...
git 所有撤銷 回退命令
git add 後撤銷 撤銷所有add檔案 git reset head 撤銷單個add檔案 git reset head filenamegit commit 後撤銷 只回退commit的資訊,保留修改 git reset soft head 徹底回退到上次commit版本,不保留修改 git r...