如何在本地删除分支?

Nat*_*ate 141 git github

我的存储库中有一个master和一个dev分支.我想从我的计算机中删除主分支,这样我就不会意外地承诺它(它发生了......).

这里有关于如何在本地远程删除分支的问题,但我还没有找到如何只在本地删除分支.

一个答案说使用这个:

git branch -d local_branch_name
Run Code Online (Sandbox Code Playgroud)

但我试过了,分支仍然出现在GitHub应用程序中.

tor*_*rek 104

我认为(根据您的意见)我理解您想要做什么:您希望您的本地存储库副本既没有普通的本地分支master,也没有远程跟踪分支origin/master,即使您克隆的存储库 - github一个都具有一个本地分支master,你不要想从GitHub的版本中删除.

您可以通过在本地删除远程跟踪分支来完成此操作,但每次您要求您的git将本地存储库与远程存储库同步时它都会回来,因为您的git要求他们的git"您拥有哪些分支"并且它说"我有master",所以你的git(重新)origin/master为你创造,以便你的存储库具有他们所拥有的.

要使用命令行界面在本地删除远程跟踪分支,请执行以下操作:

git branch -d -r origin/master
Run Code Online (Sandbox Code Playgroud)

但同样,它将重新进行重新同步.也可能打败这个(使用remote.origin.fetch操纵),但你可能最好只是被训练到足以不在master本地创建或修改.


Ben*_*ari 80

强制删除本地分支:

$ git branch -D <branch_name>
Run Code Online (Sandbox Code Playgroud)

[ 注意 ]:

"-D" 是强制删除选项.


  • 如果我删除一个有上游设置的本地分支,然后进行正常推送,它将不会删除远程分支吗? (5认同)
  • @FueledByCoffee [这是这个问题的答案](/sf/ask/3590677191/) (3认同)

Hem*_*ara 13

删除分支后使用:

git branch -d BranchName
Run Code Online (Sandbox Code Playgroud)

要删除远程存储库中不再存在的分支,请使用:

git fetch -p
Run Code Online (Sandbox Code Playgroud)

-p表示修剪,从本地存储库中删除远程中不存在的分支。


apo*_*vkh 11

Windows的Github应用程序显示存储库的所有远程分支.如果您已在本地删除了分支$ git branch -d [branch_name],则远程分支仍存在于Github存储库中,并且无论在Windows Github应用程序中都会出现.

如果要完全删除分支(也是远程),请结合使用上述命令$ git push origin :[name_of_your_new_branch].警告:此命令会清除所有现有分支,并可能导致代码丢失.小心,我不认为这是你想要做的.

但是,每次删除本地分支更改时,远程分支仍将显示在应用程序中.如果您不想继续进行更改,请忽略它并且不要单击,否则您可以克隆存储库.如果您还有其他问题,请告诉我.


Eug*_*rov 11

到目前为止,我可以理解原始问题, 你错误地向本地主人添加了提交 ,并没有推动这些更改.现在您要取消更改并希望删除本地更改并从远程更改创建新的主分支.

您可以重置更改并从远程服务器重新加载master:

git reset --hard origin/master
Run Code Online (Sandbox Code Playgroud)