由於我開發中忘記了切換分支,在master分支上開發,且直接在master分支上進行了commit、push,然後,同事告訴我他的**要準備上線了,需要合併到master分支上線,然而我的**還沒測試通過肯定不能一起上線,於是,需要回退了。
1、新建乙個開發分支,在開發分支上merge master分支;
2、在master分支上
git reset --hard 最後乙個上線之前的commit_id使用該方法,master回退到之前的某個版本之後,後面的提交記錄則都消失了,是完全回退到當時提交的模樣,而開發分支上之前合併的master分支的內容是不會跟著回退的,還是最新修改好的**,可以繼續在這基礎上開發、測試。
3、強制推送到遠端,千萬不要拉取,否則又會把最新提交拉下來
git push --force最主要區別:git reset不會生成新的提交,git revert會生成新的提交。
$ git reset --hard head^回退到上個版本1、$ git reset --hard commit_id 退到/進到 指定commit_id
git reset --mixed當前head指標指向回退到的提交記錄上,後幾次提交改變的檔案依然展示在本地,但不會放在staging暫存區,
此時提交會提示本地**比遠端的落後,push失敗,改為git push --force 強制push, 會提示不允許強制push
解決辦法如下:
gitlab如何支援push
然後強制push成功:
此時**已變為第二次提交時的兩個檔案了:
提交記錄也恢復到了前兩次提交。
git log可以檢視當前存在的兩次提交記錄,git reflog可以檢視所有提交記錄:
2、
git reset --soft 第四次提交的commit
檔案全部恢復,staging暫存區有記錄。
3、
git reset --hard 第二次提交的commitid*****===》具體這篇文章解釋的比較清楚
git revert 第三次提交的commitidrevert的結果是:只是把revert那一次提交的修改的東西刪除了,這裡只是把第三次提交增加的3.txt刪除了,並且會增加一條提交記錄。
git的一點心得
平時我們在接到乙個任務時,都要建立乙個新分支,一般我們是在gitlab 也就是我們的遠端origin 上建立,然後再拉到本地,再把它切為當前分支。今天介紹這個方法是方向的 一般不常用 git banach 分支名 或者一步到位 git checkout b 分支名 這樣我們建立的分支是根據當前的分支...
關於call user func的一點心得
好久沒寫部落格實在是慚愧,最近寫乙個控制器程式,程式獲取頁面提交引數為程式中乙個類的方法。比如,頁面有不同的按鈕可以讓使用者觸發 getmethod a 和 getmethod b getmethod n 控制器在得到引數之後如何呼叫類中對應的方法?就需要用到call user func 按手冊照葫...
關於CBitmap的一點心得
本人mfc初學者,本週剛學會bmp顯示,總結的一點心得 bmp顯示無非幾種情況 1 知道位圖路徑 2 位圖已經載入到資源 3 位影象素資料在記憶體中 顯示 cbitmap pbitmap 第一種情況 hbitmap hbitmap hbitmap loadimage afxgetinstanceha...