删除从未推送的本地 Git 分支 - 也将其删除到服务器上?

Deleting a local Git Branch that was never pushed - delete it on the server, too?

我做了一个本地分支,但后来发现我不需要它。

如果我从本地仓库中删除它,我是否也必须从远程仓库中删除?我只是创建了那个分支,并没有添加、提交或推送任何东西——简而言之,我没有在其中做任何事情。

如果您没有将分支推送到远程,您可以在本地简单地删除它:

git branch -d my_branch

注意:git如果你没有合并到它的上游或当前分支,将拒绝删除分支,以避免你丢失分支中的提交。如果您确定不需要提交,可以使用 git branch -D my_branch.

强制删除

您可以通过键入以下内容获得所有分支的概览:

git branch -a

这可能会给出如下内容:

*  master
   my_branch
   remotes/origin/master

(带*的分支是你当前的分支)

请注意,远程 'origin' 没有本地分支 my_branch,因为您还没有推送它。即使您已经在本地分支上添加和提交,它也不会在远程上(直到您推送它)。

如果你确实推送了它,你可以按如下方式从远程移除它:

git push origin :my_branch

看来你是SVN背景的(虽然我不太确定)。所以这里是要点。 1. 在本地创建分支与远程无关,直到你推送它。

  1. 您提交的所有内容都将驻留在您的本地计算机中,并且只有您推送它才会转到远程。

因此,如果您确定不再需要本地分支,可以继续删除它。

但是你想仔细检查这个本地分支是否在远程上有引用然后在删除后你可以 运行 git fetch 然后通过执行命令 git branch --all 检查该分支是否仍然存在

如果该分支仅存在于您的本地环境中,则只需通过以下步骤将其删除;

获取所有本地分支;

git branch

输出会是这样的;

* your_local_branch (which you want to delete)
  master

git checkout master

然后在本地删除,

git branch -d your_local_branch

如果要删除远程分支(如果分支已经推送到git repo)

git push origin :your_local_branch (if it is pushed)

您需要在控制台中输入

git branch -D myBranch

如果您在尝试 git branch -d branchName 时遇到错误, 尝试首先取消本地的所有更改,然后结帐以掌握。并尝试 -D 选项来强制删除分支。

git reset

git checkout master

git branch -D branchName