目錄
介紹
前言
reset介紹
revert介紹
commit記錄打tag
結束
首頁 開發工具 Git 帶你去懂git回滾程式碼(實例詳解)

帶你去懂git回滾程式碼(實例詳解)

Feb 15, 2022 pm 05:39 PM
git

這篇文章為大家帶來了關於Git回滾程式碼的相關知識,Git是一個開源的分散式版本控制系統,可以有效、高速地處理從很小到非常大的專案版本管理,希望對大家有幫助。

帶你去懂git回滾程式碼(實例詳解)

在日常coding的過程中免不了分支之間的合併,回滾、提交、打tag等操作,如果你現在還不知道怎麼使用git工具回滾程式碼,或總是擔心出錯沒有把握怕把程式碼搞丟,這很危險畢竟程式碼搞丟是很大的事情小則扣績效重則多扣點,但是dont worry,你很幸運能看到這篇文章,當你看完以後就不會在有程式碼遺失的情況,因為我會帶你手把手建分支模擬回滾的常見情況

介紹

Git(讀音為/gɪt/ )是一個開源的分散式版本控制系統,可以有效、高速地處理從很小到非常大的專案版本管理。

前言

在日常的程式碼回滾中常用的有兩種方式git revertgit reset來回滾,這兩種分別對應的不同的情況我盡量簡單明了的介紹這兩個命令都能做些什麼,接下來我會從個人倉庫新拉個分支從0開始,建兩個分支,分別是主分支 master和開發分支develop來進行模擬

reset介紹

1、reset的作用是當你希望提交的commit從歷史記錄中完全消失就可以用

2、例如你在master分支提交了A-->B-->C提交了三個記錄,這個時候如果C記錄有問題你想回滾到B就可以用git reset進行

3、這個指令大概率的情況都是用在我們主分支的,因為我們上線的分支一般是master分支然後從develop進行功能開發

4、開發完成之後將分支合併到 master,如果在上線之前發現合併的分支用問題可以將develop合併過來的分支進行回滾

#5、說白了就是取消develop#的這次合併

6、但是有一種情況就是協作開發的時候大家都合併到master之後就不能用reset強行回滾commit 因為這樣會把其他人的提交記錄給沖掉,這時候就可以用revert來進行操作我們在下面說

製造一個分支模擬環境

1.從你自己的git倉庫創建一個新專案之後拉到本地

2.創建一個index.js隨便寫點東西,之後提交到倉庫

帶你去懂git回滾程式碼(實例詳解)

3.我們在終端機上使用git log查看commit可以看到目前只有一個剛才提交的commit

帶你去懂git回滾程式碼(實例詳解)

4.我們從master分支遷出一個develop分支git branch develop,並且切換到該分支 git checkout develop

5.在develop分支新增一段程式碼,這個時候develop的commit記錄就新增了一筆B的記錄

帶你去懂git回滾程式碼(實例詳解)

## 6.在develop分支接著新增一段程式碼

帶你去懂git回滾程式碼(實例詳解)

7.看下develop分支和master分支最新的commit記錄對比,可以看到dev分支領先master分支兩個commit

帶你去懂git回滾程式碼(實例詳解)帶你去懂git回滾程式碼(實例詳解)

注意這裡有個問題當你進行分支合併的時候,有時候會發現雖然程式碼不一樣但是在進行分支合併的時候就提示程式碼沒有更新,就是因為目前的開發分支的commit記錄是落後於要合併的目標分支的,造成這種情況的原因就是reset濫用造成的,所以reset一定要慎用

操作一下reset來感受一下

1.我們將develop分支的程式碼合併到master,切換到master分支執行git merge develop

#2.我們在master分支使用git log查看commit記錄找到B記錄,準備回滾這一條,回滾的時候不需要輸入全部的commid一般是前7位就夠用

帶你去懂git回滾程式碼(實例詳解)

3.重點來了我們使用git reset 69fde2c進行回滾,這個時候查看log記錄發現最後一條新增c記錄沒有了,這裡還有個問題如果直接使用git push推送會有以下提示。

帶你去懂git回滾程式碼(實例詳解)

這是因為本地的記錄因為我們的回滾已經落後於倉庫的程式碼了,這個使用需要使用git push \-f進行強制提交

4.這個時候master分支就剩下A和B的commit記錄了,到這裡就是一次完整的reset回滾記錄,之後我們還是可以繼續正常把develop分支合併到master的

帶你去懂git回滾程式碼(實例詳解)

revert介紹

1、revert的原理是,在目前提交後面,新增一次提交,抵銷掉上一次提交導致的所有變化。它不會改變過去的歷史,所以是首選方式,沒有任何遺失程式碼的風險

2、revert可以抵銷上一個提交,那麼如果想要抵銷多個需要執行 git revert 倒數第一個commit id 倒數第二個commit

3、這個就常用於當你提交了一次commit之後發現提交的可能有問題就可以用到revert

4、還有一種情景是已經有很多人提交過代碼,但是想改之前的某一次commit記錄又不想影響後面的也可以使用revert,他會把你後面提交的記錄都放到工作區只是合併的時候需要注意一點

我們來模擬環境

1.切到develop分支現在該分支有三個commit記錄帶你去懂git回滾程式碼(實例詳解)

2.我們使用rever進行回滾試試看git revert 16083ce,如果你也用的是vs code可以看到工作區的變化,並且在控制台可以提交預設的commit

帶你去懂git回滾程式碼(實例詳解)

#3.看一下log記錄,可以看到新增了一個記錄Revert 新增C,並且原來的新增C還是在的

帶你去懂git回滾程式碼(實例詳解)

commit記錄打tag

1、在上線之前我們需要對目前的commit記錄打一個tag方便上線的程式碼有問題可以及時回滾

我們來介紹常用的幾個指令

1.git tag列出所有的tag清單

帶你去懂git回滾程式碼(實例詳解)

#2.建立一個tag,使用git tag [name],我們新增一個 git tag 測試4,在使用git tag 查看一下

帶你去懂git回滾程式碼(實例詳解)

3.查看tag對應的commit訊息,git show [tag名字],舉例git show 測試1,上線之後如果有問題我們就可以根據下圖的commit id進行程式碼回溯

帶你去懂git回滾程式碼(實例詳解)

結束

git管理工具在我們日常中可以說是天天都在用,所以對於常見的問題場景對應的方法一定要牢牢地掌握免得遇到的時候顯得捉襟見肘

推薦學習:《Git教程

#

以上是帶你去懂git回滾程式碼(實例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

git怎麼更新代碼 git怎麼更新代碼 Apr 17, 2025 pm 04:45 PM

更新 git 代碼的步驟:檢出代碼:git clone https://github.com/username/repo.git獲取最新更改:git fetch合併更改:git merge origin/master推送更改(可選):git push origin master

git怎麼下載項目到本地 git怎麼下載項目到本地 Apr 17, 2025 pm 04:36 PM

要通過 Git 下載項目到本地,請按以下步驟操作:安裝 Git。導航到項目目錄。使用以下命令克隆遠程存儲庫:git clone https://github.com/username/repository-name.git

git commit怎麼用 git commit怎麼用 Apr 17, 2025 pm 03:57 PM

Git Commit 是一種命令,將文件變更記錄到 Git 存儲庫中,以保存項目當前狀態的快照。使用方法如下:添加變更到暫存區域編寫簡潔且信息豐富的提交消息保存並退出提交消息以完成提交可選:為提交添加簽名使用 git log 查看提交內容

git下載不動怎麼辦 git下載不動怎麼辦 Apr 17, 2025 pm 04:54 PM

解決 Git 下載速度慢時可採取以下步驟:檢查網絡連接,嘗試切換連接方式。優化 Git 配置:增加 POST 緩衝區大小(git config --global http.postBuffer 524288000)、降低低速限制(git config --global http.lowSpeedLimit 1000)。使用 Git 代理(如 git-proxy 或 git-lfs-proxy)。嘗試使用不同的 Git 客戶端(如 Sourcetree 或 Github Desktop)。檢查防火

git怎麼合併代碼 git怎麼合併代碼 Apr 17, 2025 pm 04:39 PM

Git 代碼合併過程:拉取最新更改以避免衝突。切換到要合併的分支。發起合併,指定要合併的分支。解決合併衝突(如有)。暫存和提交合併,提供提交消息。

git怎麼更新本地代碼 git怎麼更新本地代碼 Apr 17, 2025 pm 04:48 PM

如何更新本地 Git 代碼?用 git fetch 從遠程倉庫拉取最新更改。用 git merge origin/<遠程分支名稱> 將遠程變更合併到本地分支。解決因合併產生的衝突。用 git commit -m "Merge branch <遠程分支名稱>" 提交合併更改,應用更新。

如何解決PHP項目中的高效搜索問題? Typesense助你實現! 如何解決PHP項目中的高效搜索問題? Typesense助你實現! Apr 17, 2025 pm 08:15 PM

在開發一個電商網站時,我遇到了一個棘手的問題:如何在大量商品數據中實現高效的搜索功能?傳統的數據庫搜索效率低下,用戶體驗不佳。經過一番研究,我發現了Typesense這個搜索引擎,並通過其官方PHP客戶端typesense/typesense-php解決了這個問題,大大提升了搜索性能。

git怎麼刪除倉庫 git怎麼刪除倉庫 Apr 17, 2025 pm 04:03 PM

要刪除 Git 倉庫,請執行以下步驟:確認要刪除的倉庫。本地刪除倉庫:使用 rm -rf 命令刪除其文件夾。遠程刪除倉庫:導航到倉庫設置,找到“刪除倉庫”選項,確認操作。

See all articles