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

Git撤回已Push的代碼的方法大全

 更新時間:2025年12月31日 08:54:56   作者:野生技術(shù)架構(gòu)師  
在日常的開發(fā)中,我們經(jīng)常使用Git來進行版本控制,有時候,我們可能會不小心將錯誤的代碼 Push 到遠程倉庫,或者想要在本地回退到之前的某個版本重新開發(fā),所以本文給大家介紹了Git 如何撤回已 Push 的代碼,需要的朋友可以參考下

面試官問:Git 如何撤回已 Push 的代碼?如果問你,你會嗎?

在日常的開發(fā)中,我們經(jīng)常使用Git來進行版本控制。有時候,我們可能會不小心將錯誤的代碼 Push 到遠程倉庫,或者想要在本地回退到之前的某個版本重新開發(fā)。

或者像我一樣,寫了一些感覺以后很有用的優(yōu)化方案push到線上,又接到了一個新的需求。但是呢,項目比較重要,沒有經(jīng)過測試的方案不能輕易上線,為了承接需求只能先把push上去的優(yōu)化方案先下掉。

現(xiàn)在我的分支是這樣的,我想要在本地和遠程倉庫中都恢復(fù)到help文檔提交 的部分。

1. 基礎(chǔ)的手動操作(比較笨,不推薦)

這樣的操作非常不推薦,但是如果你不了解git,確實是我們最容易理解的方式。

如果你的錯誤代碼不是很多,那么你其實可以通過與你想要恢復(fù)到的commit進行對比,然后手動刪除錯誤代碼,然后刪除不同的代碼。

按住 ctrl 選擇想要對比的兩個commit,然后選擇 Compare Versions 就能通過對比刪除掉你想要刪除的代碼。

這個方案在代碼很簡單時時非常有效的,甚至還能通過刪除后最新commit和想要退回的commit在Compare 一下保障代碼一致。

但是這個方法對于代碼比較復(fù)雜的情況來說就不太好處理了,如果涉及到繁雜的配置文件,那更是讓人頭疼。只能通過反復(fù)的Compare Version來進行對比。

這樣的手動操作顯然顯得有些笨拙了,對此git有一套較為優(yōu)雅的操作流程,同樣能解決這個問題。

2. git Revert Commit(推薦)

同樣的,我第三次提交了錯誤代碼,并且已經(jīng)push到遠程分支。想要撤回這部分代碼,只需要右鍵點擊錯誤提交記錄

git自動產(chǎn)生一個Revert記錄,然后我們會看到git自動將我第三次錯誤提交代碼回退了,這個其實就相當于git幫我們手動回退了代碼。

后續(xù),只需要我們將本次改動push到遠程,即可完成一次這次回退操作,

revert相當于自動幫我們進行版本回退操作,并且留下改動記錄,非常安全。這也是評論區(qū)各位大佬非常推薦的。

但是revert還是存在一點不足,即一次僅能回退一次push。如果我們有幾十次甚至上百次的記錄,一次次的單擊回退不僅費時費力而且還留下了每次的回退記錄,我個人覺得revert在這種情況下又不太優(yōu)雅。

3. 增加新分支(推薦撤回較多情況下使用)

如果真的需要回退到上百次提交之前的版本,我的建議是直接新建個分支。

在想要回到的版本處的提交記錄右鍵,點擊new branch

新建分支的操作僅僅增加了一個分支,既能保留原來的版本,又能安全回退到想要回退的版本,同時不會產(chǎn)生太多的回退記錄。

但是此操作仍然建議慎用,因為這個操作執(zhí)行多了,分支管理就又成了一大難題。

4. Reset Current Branch 到你想要恢復(fù)的commit記錄(不太安全,慎用)

這個時候會跳出四個選項供你選擇,我這里是選擇hard 。

其他選項的含義僅供參考 ,因為我也沒有一一嘗試過。

  1. Soft :你之前寫的不會改變,你之前暫存過的文件還在暫存。
  2. Mixed :你之前寫的不會改變,你之前暫存過的文件不會暫存。
  3. Hard :文件恢復(fù)到所選提交狀態(tài),任何更改都會丟失。你已經(jīng)提交了,然后你又在本地更改了,如果你選hard,那么提交的內(nèi)容和你提交后又本地修改未提交的內(nèi)容都會丟失。
  4. keep :任何本地更改都將丟失,文件將恢復(fù)到所選提交的狀態(tài),但本地更改將保持不變。你已經(jīng)提交了,然后你又在本地更改了,如果你選keep,那么提交的內(nèi)容會丟失,你提交后又本地修改未提交的內(nèi)容不會丟失。

然后,之前錯誤提交的commit就在本地給干掉了。但是遠程倉庫中的提交還是原來的樣子,你要把目前狀態(tài)同步到遠程倉庫。也就是需要把那幾個commit刪除的操作push過去。

打開push界面,雖然沒有commit需要提交,需要點擊Force Push ,強推過去。

需要注意的是對于一些被保護的分支,這個操作是不能進行的。需要自行查看配置,我這里因為不是master分支,所以沒有保護。

可以看到,遠程倉庫中最新的commit只有我們的help文檔 。在其上的三個提交都沒了。

以上就是Git撤回已Push的代碼的方法大全的詳細內(nèi)容,更多關(guān)于Git撤回已Push代碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

云梦县| 隆化县| 呼玛县| 布尔津县| 苗栗市| 温州市| 广汉市| 东城区| 扎赉特旗| 阳西县| 体育| 建始县| 安国市| 乌拉特后旗| 蕲春县| 邮箱| 灯塔市| 高平市| 洪泽县| 南通市| 南汇区| 开鲁县| 乌恰县| 丘北县| 长顺县| 许昌市| 涟水县| 灵台县| 甘肃省| 应城市| 木兰县| 山阳县| 长乐市| 临城县| 南雄市| 昆山市| 佛教| 疏附县| 滕州市| 新乐市| 宜都市|