關於git版本回退的一點心得

2022-04-18 22:57:14 字數 1993 閱讀 3272

由於我開發中忘記了切換分支,在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^回退到上個版本

$ git reset --hard commit_id 退到/進到 指定commit_id

1、

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 第三次提交的commitid

revert的結果是:只是把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...