Git 是一種流行的版本控制系統(tǒng),也是 Web 開發(fā)人員工具包中必不可少的工具。分支是使用 Git 的一個(gè)強(qiáng)大且不可或缺的部分。在本文中,您將學(xué)習(xí)有關(guān)如何在 Git 中刪除本地和遠(yuǎn)程分支的基礎(chǔ)知識。
Git 中的分支是什么?
分支是指向提交的指針。
Git 分支是從特定時(shí)間點(diǎn)開始的項(xiàng)目及其更改的快照。
在處理大型項(xiàng)目時(shí),有包含所有代碼的主存儲庫,通常稱為main或master。
分支允許您創(chuàng)建原始主要工作項(xiàng)目的新的、獨(dú)立的版本。您可以創(chuàng)建一個(gè)分支來編輯它以進(jìn)行更改、添加新功能或在嘗試修復(fù)錯(cuò)誤時(shí)編寫測試。一個(gè)新的分支可以讓你在不以任何方式影響主代碼的情況下做到這一點(diǎn)。
總而言之 - 分支讓您可以在不影響核心代碼的情況下更改代碼庫,直到您完全準(zhǔn)備好實(shí)施這些更改。
這有助于您保持代碼庫整潔有序。
為什么要?jiǎng)h除 Git 中的分支?
因此,您已經(jīng)創(chuàng)建了一個(gè)分支來保存要在項(xiàng)目中進(jìn)行的更改的代碼。
然后,您將該更改或新功能合并到項(xiàng)目的原始版本中。
這意味著您不再需要保留和使用該分支,因此刪除它是一種常見的最佳做法,以免它弄亂您的代碼。
如何在 Git 中刪除本地分支
本地分支是您本地機(jī)器上的分支,不會影響任何遠(yuǎn)程分支。
在 Git 中刪除本地分支的命令是:
git branch -d local_branch_name
- git branch 是在本地刪除分支的命令。
- -d是一個(gè)標(biāo)志,是命令的一個(gè)選項(xiàng),它是--delete. 顧名思義,它表示您要?jiǎng)h除某些內(nèi)容。-local_branch_name是要?jiǎng)h除的分支的名稱。
讓我們通過一個(gè)例子來更詳細(xì)地研究一下。
要列出所有本地分支,請使用以下命令:
git branch
我有兩個(gè),分支master和test2. 如圖所示,我目前在test2分支上(*):
我想刪除test2分支,但無法刪除您當(dāng)前所在和查看的分支。
如果您嘗試這樣做,您將收到如下所示的錯(cuò)誤:
因此,在刪除本地分支之前,請確保使用以下git checkout命令切換到您不想刪除的另一個(gè)分支:
git checkout branch_name
#where branch_name is the name of the branch you want to move to
#in my case the other branch I have is master, so I'd do:
#git checkout master
這是輸出:
現(xiàn)在我可以刪除分支:
我們剛剛使用的刪除本地分支的命令并非在所有情況下都有效。
如果分支包含未合并的更改和未推送的提交,則該-d標(biāo)志將不允許刪除本地分支。
這是因?yàn)槿魏纹渌种Ф伎床坏教峤?,并?Git 正在保護(hù)您免于意外丟失任何提交數(shù)據(jù)。
如果你嘗試這樣做,Git 會顯示一個(gè)錯(cuò)誤:
正如錯(cuò)誤所暗示的那樣,您需要改用該-D標(biāo)志:
git branch -D local_branch_name
-D帶有大寫-- delete --force字母D(它是 的別名)的標(biāo)志會強(qiáng)行刪除本地分支,無論其合并狀態(tài)如何。
但請注意,您應(yīng)該謹(jǐn)慎使用此命令,因?yàn)闆]有提示要求您確認(rèn)您的操作。
僅當(dāng)您絕對確定要?jiǎng)h除本地分支時(shí)才使用它。
如果您沒有將其合并到另一個(gè)本地分支或?qū)⑵渫扑偷酱a庫中的遠(yuǎn)程分支,您將面臨丟失所做的任何更改的風(fēng)險(xiǎn)。
如何在 Git 中刪除遠(yuǎn)程分支
遠(yuǎn)程分支與本地分支是分開的。
它們是托管在遠(yuǎn)程服務(wù)器上的存儲庫,可以在那里訪問。這與本地分支相比,本地分支是本地系統(tǒng)上的存儲庫。
刪除遠(yuǎn)程分支的命令是:
git push remote_name -d remote_branch_name
- git branch您可以使用該命令刪除遠(yuǎn)程分支,而不是使用用于本地分支的git push命令。
- 然后您指定遙控器的名稱,在大多數(shù)情況下是origin.
- -d是刪除標(biāo)志,是--delete.
- remote_branch_name 是要?jiǎng)h除的遠(yuǎn)程分支。
現(xiàn)在,讓我們看一個(gè)如何刪除遠(yuǎn)程分支的示例。
要查看任何遠(yuǎn)程分支,請使用以下命令:
git branch -a
該-a標(biāo)志(一個(gè)別名--all)顯示所有分支機(jī)構(gòu)-本地和遠(yuǎn)程。
我有兩個(gè)名為masterand 的本地分支test和兩個(gè)遠(yuǎn)程分支origin/masterand origin/test。
的-r,一個(gè)別名--remotes,顯示僅在遠(yuǎn)程存儲庫。
我想刪除遠(yuǎn)程origin/test分支,所以我使用命令:
git push origin -d test
輸出:
這刪除了test名為 的遠(yuǎn)程存儲庫中的分支origin。
該origin/test遠(yuǎn)程倉庫就不再出現(xiàn)了:
結(jié)論
您現(xiàn)在知道如何在 Git 中刪除本地和遠(yuǎn)程分支。感謝閱讀,祝學(xué)習(xí)愉快!