最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單談?wù)凣it中的回滾操作

 更新時間:2016年09月25日 16:07:55   作者:大蟒傳奇  
大家在日常開發(fā)中,經(jīng)常會遇到需要將代碼切回到之前的某個版本的情況,有可能是需要將代碼回滾,也有可能需要查看之前的某個實現(xiàn)。遇到這樣的情況,該怎么做呢?下面通過這篇文章來學(xué)習(xí)下Git中的回滾操作,有需要的可以參考借鑒。

首先介紹下場景

首先,一定要想清楚,自己想干什么。

找redis源碼作為例子,查看所在的分支git branch

 3.0
 3.2
* unstable

取前5條commit看看

git log --pretty=format:"%h - %an, %ar : %s" -5
e9d861e - antirez, 27 hours ago : Clear child data when opening the pipes.
e565632 - antirez, 27 hours ago : Child -> Parent pipe for COW info transferring.
e1eccf9 - antirez, 31 hours ago : zmalloc: Make fp var non local to fix build.
945a2f9 - antirez, 31 hours ago : zmalloc: zmalloc_get_smap_bytes_by_field() modified to work for any PID.
b13759e - antirez, 31 hours ago : redis-cli: "allocator-stats" -> "malloc-stats".

臨時切換到某個commit

有可能你并不需要回滾代碼,你只想將代碼庫暫時切換到之前的某個版本,看看那個時候的實現(xiàn),然后回來繼續(xù)寫之前沒有完成的任務(wù)。比如想看看945a2f9這個commit,執(zhí)行操作

git checkout 945a2f9
Note: checking out '945a2f9'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

 git checkout -b <new-branch-name>

HEAD is now at 945a2f9... zmalloc: zmalloc_get_smap_bytes_by_field() modified to work for any PID.

再執(zhí)行git branch

* (HEAD detached at 945a2f9)
 3.0
 3.2
 unstable

可以看到處于一個臨時的分支上面,如果想以這個分支作為基礎(chǔ)開發(fā)新的功能,可以創(chuàng)建一個新的分支進行開發(fā)。

git checkout -b old-bottle 945a2f9

如果想回到之前的的分支,只要checkout回去就好了。

當(dāng)然如果在切回以前的commit的之前已經(jīng)改了一些代碼,可能不會那么順利地切到之前的commit,可以

     使用reset將修改了的代碼丟棄

     stash->checkout->stash pop將修改的代碼找回來

     生成一個新的分支用于保存修改的代碼

刪除未發(fā)布的提交

如果確定要刪除某幾個commit,并且那幾個commit的代碼還沒有提交到遠程版本庫里的話。

可以這樣

git reset --hard 945a2f9

HEAD is now at 945a2f9 zmalloc: zmalloc_get_smap_bytes_by_field() modified to work for any PID.

再查看git log,就已經(jīng)看不到945a2f9之前的commit記錄了。

當(dāng)然如果想保存當(dāng)前沒有提交的代碼,可以和之前一樣使用stash

git stash
git reset --hard 945a2f9
git stash pop

注意:

reset --hard 一定要慎用!!

這回讓你徹底丟失本地的代碼(除非有備份過)

刪除已發(fā)布的提交

假設(shè)代碼已經(jīng)提交到遠程版本庫了,這時應(yīng)該使用revert命令,revert命令實際是提交一個新的commit來回滾之前的commit。還是以945a2f9為例,現(xiàn)在想讓代碼會滾到945a2f9的狀態(tài),那么需要revert掉之前的commit

git revert e9d861e e565632 e1eccf9

或者可以這樣做,revert掉HEAD的前三個commit

git revert HEAD~3..HEAD

之后就可以將現(xiàn)在的HEAD push到版本庫了。

如果發(fā)現(xiàn)之前revert操作錯了,可以再執(zhí)行一次revert來取消上次的revert。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,本文只是簡單講了一些我個人的一些操作實踐。希望能對大家的學(xué)習(xí)或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • VS2019創(chuàng)建MFC程序的實現(xiàn)方法

    VS2019創(chuàng)建MFC程序的實現(xiàn)方法

    這篇文章主要介紹了VS2019創(chuàng)建MFC程序的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Git回退到指定版本三種方法及常見的錯誤

    Git回退到指定版本三種方法及常見的錯誤

    在Git中回退到指定版本并不是刪除或撤銷之前的提交,而是創(chuàng)建一個新的提交,該提交包含指定版本的內(nèi)容,這篇文章主要給大家介紹了關(guān)于Git回退到指定版本三種方法及常見的錯誤,需要的朋友可以參考下
    2024-03-03
  • VSCode設(shè)置默認瀏覽器打開的兩種方式

    VSCode設(shè)置默認瀏覽器打開的兩種方式

    在使用vscode編輯器的時候,如果我們不設(shè)置默認瀏覽器,那么直接打開的是IE瀏覽器,在進行頁面調(diào)試的時候無疑是有點麻煩的,這篇文章主要給大家介紹了關(guān)于VSCode設(shè)置默認瀏覽器打開的兩種方式,需要的朋友可以參考下
    2023-09-09
  • 常用VsCode 快捷鍵(Window & Mac)GIF演示

    常用VsCode 快捷鍵(Window & Mac)GIF演示

    本文給大家分享了23個常用VsCode 快捷鍵(Window & Mac)的GIF動圖演示,非常的實用,有需要的小伙伴可以拿走參考
    2020-02-02
  • 關(guān)于IDEA中Git暫存代碼的使用

    關(guān)于IDEA中Git暫存代碼的使用

    本文主要介紹了關(guān)于IDEA中Git暫存代碼的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 不懂編程該如何使用AI 編程技巧詳解

    不懂編程該如何使用AI 編程技巧詳解

    在當(dāng)今數(shù)字化時代,編程不再是專屬于程序員的領(lǐng)域,通過人工智能(AI)的協(xié)助,甚至是非編程專業(yè)人士也能輕松涉足,對于那些沒有編程基礎(chǔ)卻渴望利用 AI 進行編程的人來說,AI 就是你編程學(xué)習(xí)的得力伙伴
    2023-11-11
  • 使用swipe方法模擬屏幕滑動與手勢密碼繪制

    使用swipe方法模擬屏幕滑動與手勢密碼繪制

    這篇文章主要介紹了使用swipe方法模擬屏幕滑動與手勢密碼繪制 ,本文通過實力代碼,圖文效果的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • GIT相關(guān)-IDEA/ECLIPSE工具配置的教程詳解

    GIT相關(guān)-IDEA/ECLIPSE工具配置的教程詳解

    這篇文章主要介紹了GIT相關(guān)-IDEA/ECLIPSE工具配置的教程,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • git恢復(fù)刪除的分支及內(nèi)容的方法

    git恢復(fù)刪除的分支及內(nèi)容的方法

    下面小編就為大家?guī)硪黄猤it恢復(fù)刪除的分支及內(nèi)容的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • git設(shè)置用戶名密碼的示例代碼

    git設(shè)置用戶名密碼的示例代碼

    這篇文章主要介紹了git設(shè)置用戶名密碼的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論

德昌县| 类乌齐县| 石家庄市| 都兰县| 绵竹市| 宁陕县| 静海县| 凉山| 辉南县| 哈尔滨市| 南通市| 寻乌县| 武汉市| 永州市| 华坪县| 长寿区| 云阳县| 绩溪县| 武义县| 东宁县| 温宿县| 双峰县| 岳西县| 尉犁县| 古田县| 金坛市| 墨脱县| 章丘市| 博客| 濮阳市| 蚌埠市| 安泽县| 湘阴县| 澎湖县| 尚志市| 蓝山县| 隆德县| 平顶山市| 读书| 县级市| 伊金霍洛旗|