搜尋
首頁開發工具Git帶你去懂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中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除
git vs. github:探索他們的角色git vs. github:探索他們的角色Apr 16, 2025 am 12:06 AM

Git和GitHub是不同的工具:Git是一個分佈式版本控制系統,用於管理代碼版本和協作開發;GitHub是一個基於Git的在線平台,提供代碼託管和協作工具。 Git的主要功能包括版本管理、分支管理和協作開發,而GitHub則提供代碼託管、協作工具和社交網絡功能。

GitHub:開源和軟件開發的樞紐GitHub:開源和軟件開發的樞紐Apr 15, 2025 am 12:10 AM

GitHub是一個基於Git的版本控制系統託管平台,提供版本控制、協作開發和社區交流功能。使用GitHub可以提高開發效率和代碼質量。

git and github:有什麼關係?git and github:有什麼關係?Apr 14, 2025 am 12:10 AM

Git和GitHub是不同的工具:Git是用於版本控制的軟件,GitHub是基於Git的在線平台。 1.Git允許你跟踪文件變化和協同開發。 2.GitHub提供代碼託管和協作工具,增強團隊開發效率。

GitHub:開發人員和項目的平台GitHub:開發人員和項目的平台Apr 13, 2025 am 12:01 AM

GitHub的核心功能包括版本控制、分支管理、代碼審查、問題跟踪和項目管理。 1.版本控制與分支管理基於Git,允許追踪代碼變更和實驗性開發。 2.代碼審查通過PullRequest實現,提升代碼質量和團隊協作。 3.問題跟踪與項目管理通過Issues和項目管理板進行,提高項目透明度和可追踪性。

行動中的github:示例和用例行動中的github:示例和用例Apr 12, 2025 am 12:16 AM

GitHub是提升軟件開發效率和質量的強大工具。 1)版本控制:通過Git管理代碼變更。 2)PullRequests:進行代碼審查,提高代碼質量。 3)Issues:跟踪bug和項目進度。 4)GitHubActions:自動化構建、測試和部署流程。

git vs. github:版本控制和代碼託管git vs. github:版本控制和代碼託管Apr 11, 2025 am 11:33 AM

Git是版本控制系統,GitHub是基於Git的代碼託管平台。 Git用於管理代碼版本,支持本地操作;GitHub提供在線協作工具,如Issue跟踪和PullRequest。

什麼是簡單的話?什麼是簡單的話?Apr 09, 2025 am 12:12 AM

Git是一個開源的分佈式版本控制系統,幫助開發者跟踪文件變化、協同工作和管理代碼版本。它的核心功能包括:1)記錄代碼修改,2)回退到之前版本,3)協同開發,4)創建和管理分支進行並行開發。

git和github相同嗎?git和github相同嗎?Apr 08, 2025 am 12:13 AM

Git和GitHub不是同一回事。 Git是版本控制系統,GitHub是基於Git的代碼託管平台。 Git用於管理代碼版本,GitHub提供在線協作環境。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境