App下載

Git 刪除分支——如何刪除本地或遠(yuǎn)程分支

微醉陽(yáng)光 2021-08-27 10:25:07 瀏覽數(shù) (42144)
反饋

Git 是一種流行的版本控制系統(tǒng),也是 Web 開發(fā)人員工具包中必不可少的工具。分支是使用 Git 的一個(gè)強(qiáng)大且不可或缺的部分。在本文中,您將學(xué)習(xí)有關(guān)如何在 Git 中刪除本地和遠(yuǎn)程分支的基礎(chǔ)知識(shí)。

Git 中的分支是什么?

分支是指向提交的指針。

Git 分支是從特定時(shí)間點(diǎn)開始的項(xiàng)目及其更改的快照。

在處理大型項(xiàng)目時(shí),有包含所有代碼的主存儲(chǔ)庫(kù),通常稱為main或master。

分支允許您創(chuàng)建原始主要工作項(xiàng)目的新的、獨(dú)立的版本。您可以創(chuàng)建一個(gè)分支來(lái)編輯它以進(jìn)行更改、添加新功能或在嘗試修復(fù)錯(cuò)誤時(shí)編寫測(cè)試。一個(gè)新的分支可以讓你在不以任何方式影響主代碼的情況下做到這一點(diǎn)。

總而言之 - 分支讓您可以在不影響核心代碼的情況下更改代碼庫(kù),直到您完全準(zhǔn)備好實(shí)施這些更改。

這有助于您保持代碼庫(kù)整潔有序。

為什么要?jiǎng)h除 Git 中的分支?

因此,您已經(jīng)創(chuàng)建了一個(gè)分支來(lái)保存要在項(xiàng)目中進(jìn)行的更改的代碼。

然后,您將該更改或新功能合并到項(xiàng)目的原始版本中。

這意味著您不再需要保留和使用該分支,因此刪除它是一種常見的最佳做法,以免它弄亂您的代碼。

如何在 Git 中刪除本地分支

本地分支是您本地機(jī)器上的分支,不會(huì)影響任何遠(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除的分支的名稱。

讓我們通過(guò)一個(gè)例子來(lái)更詳細(xì)地研究一下。

要列出所有本地分支,請(qǐng)使用以下命令:

git branch

我有兩個(gè),分支master和test2. 如圖所示,我目前在test2分支上(*):

Screenshot-2021-08-25-at-4.13.14-PM

我想刪除test2分支,但無(wú)法刪除您當(dāng)前所在和查看的分支。

如果您嘗試這樣做,您將收到如下所示的錯(cuò)誤:

Screenshot-2021-08-25-at-4.17.50-PM

因此,在刪除本地分支之前,請(qǐng)確保使用以下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

這是輸出:

Screenshot-2021-08-25-at-4.20.40-PM

現(xiàn)在我可以刪除分支:

Screenshot-2021-08-25-at-5.10.13-PM

我們剛剛使用的刪除本地分支的命令并非在所有情況下都有效。

如果分支包含未合并的更改和未推送的提交,則該-d標(biāo)志將不允許刪除本地分支。

這是因?yàn)槿魏纹渌种Ф伎床坏教峤?,并?Git 正在保護(hù)您免于意外丟失任何提交數(shù)據(jù)。

如果你嘗試這樣做,Git 會(huì)顯示一個(gè)錯(cuò)誤:

Screenshot-2021-08-25-at-5.23.46-P??M

正如錯(cuò)誤所暗示的那樣,您需要改用該-D標(biāo)志:

git branch -D local_branch_name

-D帶有大寫-- delete --force字母D(它是 的別名)的標(biāo)志會(huì)強(qiáng)行刪除本地分支,無(wú)論其合并狀態(tài)如何。

但請(qǐng)注意,您應(yīng)該謹(jǐn)慎使用此命令,因?yàn)闆](méi)有提示要求您確認(rèn)您的操作。

僅當(dāng)您絕對(duì)確定要?jiǎng)h除本地分支時(shí)才使用它。

如果您沒(méi)有將其合并到另一個(gè)本地分支或?qū)⑵渫扑偷酱a庫(kù)中的遠(yuǎn)程分支,您將面臨丟失所做的任何更改的風(fēng)險(xiǎn)。

Screenshot-2021-08-25-at-5.33.41-PM

如何在 Git 中刪除遠(yuǎn)程分支

遠(yuǎn)程分支與本地分支是分開的。

它們是托管在遠(yuǎn)程服務(wù)器上的存儲(chǔ)庫(kù),可以在那里訪問(wèn)。這與本地分支相比,本地分支是本地系統(tǒng)上的存儲(chǔ)庫(kù)。

刪除遠(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)程分支,請(qǐng)使用以下命令:

git branch -a

該-a標(biāo)志(一個(gè)別名--all)顯示所有分支機(jī)構(gòu)-本地和遠(yuǎn)程。

Screenshot-2021-08-25-at-7.35.31-PM

我有兩個(gè)名為masterand 的本地分支test和兩個(gè)遠(yuǎn)程分支origin/masterand origin/test。

的-r,一個(gè)別名--remotes,顯示僅在遠(yuǎn)程存儲(chǔ)庫(kù)。

Screenshot-2021-08-25-at-7.37.12-PM

我想刪除遠(yuǎn)程origin/test分支,所以我使用命令:

git push origin -d test

輸出:

Screenshot-2021-08-25-at-7.39.34-PM

這刪除了test名為 的遠(yuǎn)程存儲(chǔ)庫(kù)中的分支origin。

該origin/test遠(yuǎn)程倉(cāng)庫(kù)就不再出現(xiàn)了:

Screenshot-2021-08-25-at-7.42.01-PM

結(jié)論

您現(xiàn)在知道如何在 Git 中刪除本地和遠(yuǎn)程分支。感謝閱讀,祝學(xué)習(xí)愉快!


1 人點(diǎn)贊