Git 是一種流行的版本控制系統(tǒng),也是 Web 開發(fā)人員工具包中必不可少的工具。分支是使用 Git 的一個強(qiáng)大且不可或缺的部分。在本文中,您將學(xué)習(xí)有關(guān)如何在 Git 中刪除本地和遠(yuǎn)程分支的基礎(chǔ)知識。
Git 中的分支是什么?
分支是指向提交的指針。
Git 分支是從特定時間點(diǎn)開始的項(xiàng)目及其更改的快照。
在處理大型項(xiàng)目時,有包含所有代碼的主存儲庫,通常稱為main或master。
分支允許您創(chuàng)建原始主要工作項(xiàng)目的新的、獨(dú)立的版本。您可以創(chuàng)建一個分支來編輯它以進(jìn)行更改、添加新功能或在嘗試修復(fù)錯誤時編寫測試。一個新的分支可以讓你在不以任何方式影響主代碼的情況下做到這一點(diǎn)。
總而言之 - 分支讓您可以在不影響核心代碼的情況下更改代碼庫,直到您完全準(zhǔn)備好實(shí)施這些更改。
這有助于您保持代碼庫整潔有序。
為什么要刪除 Git 中的分支?
因此,您已經(jīng)創(chuàng)建了一個分支來保存要在項(xiàng)目中進(jìn)行的更改的代碼。
然后,您將該更改或新功能合并到項(xiàng)目的原始版本中。
這意味著您不再需要保留和使用該分支,因此刪除它是一種常見的最佳做法,以免它弄亂您的代碼。
如何在 Git 中刪除本地分支
本地分支是您本地機(jī)器上的分支,不會影響任何遠(yuǎn)程分支。
在 Git 中刪除本地分支的命令是:
git branch -d local_branch_name
- git branch 是在本地刪除分支的命令。
- -d是一個標(biāo)志,是命令的一個選項(xiàng),它是--delete. 顧名思義,它表示您要刪除某些內(nèi)容。-local_branch_name是要刪除的分支的名稱。
讓我們通過一個例子來更詳細(xì)地研究一下。
要列出所有本地分支,請使用以下命令:
git branch
我有兩個,分支master和test2. 如圖所示,我目前在test2分支上(*):
我想刪除test2分支,但無法刪除您當(dāng)前所在和查看的分支。
如果您嘗試這樣做,您將收到如下所示的錯誤:
因此,在刪除本地分支之前,請確保使用以下git checkout命令切換到您不想刪除的另一個分支:
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 會顯示一個錯誤:
正如錯誤所暗示的那樣,您需要改用該-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)您絕對確定要刪除本地分支時才使用它。
如果您沒有將其合并到另一個本地分支或?qū)⑵渫扑偷酱a庫中的遠(yuǎn)程分支,您將面臨丟失所做的任何更改的風(fēng)險。
如何在 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 是要刪除的遠(yuǎn)程分支。
現(xiàn)在,讓我們看一個如何刪除遠(yuǎn)程分支的示例。
要查看任何遠(yuǎn)程分支,請使用以下命令:
git branch -a
該-a標(biāo)志(一個別名--all)顯示所有分支機(jī)構(gòu)-本地和遠(yuǎn)程。
我有兩個名為masterand 的本地分支test和兩個遠(yuǎn)程分支origin/masterand origin/test。
的-r,一個別名--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í)愉快!