Git 是否删除本地“远程分支”而不删除远程分支?

Git 是否删除本地“远程分支”而不删除远程分支?,git,Git,我的遥控器上有一个分支叫做feature1。我试图通过以下方式创建跟踪此的本地分支: git checkout -b origin/feature1 但现在git branch向我展示了: master *origin/feature1 我知道这是不对的。它应该只是本地特性1,而不是源/特性1 如何在保持远程分支完好无损的情况下删除它,并正确设置它?我做错了什么?要删除一个分支,就这么简单: git branch -D <branch name> 但您也可以重命名旧的:

我的遥控器上有一个分支叫做feature1。我试图通过以下方式创建跟踪此的本地分支:

git checkout -b origin/feature1
但现在git branch向我展示了:

master    
*origin/feature1
我知道这是不对的。它应该只是本地特性1,而不是源/特性1


如何在保持远程分支完好无损的情况下删除它,并正确设置它?我做错了什么?

要删除一个分支,就这么简单:

git branch -D <branch name>
但您也可以重命名旧的:

我知道这是不对的。它应该只是本地特性1,而不是源/特性1

下面是所有命令的完整屏幕截图


要删除分支,只需执行以下操作:

git branch -D <branch name>
但您也可以重命名旧的:

我知道这是不对的。它应该只是本地特性1,而不是源/特性1

下面是所有命令的完整屏幕截图


您的命令应该是:

git checkout -b feature1 origin/feature1
上面写着“签出并创建分支特征1,并让它跟踪原点/特征1”。您所做的是创建一个名为origin/feature1的分支,它不跟踪任何远程分支

要修复此问题,请切换到另一个分支:

git checkout master
然后删除它:

git branch -d origin/feature1

您的命令应该是:

git checkout -b feature1 origin/feature1
上面写着“签出并创建分支特征1,并让它跟踪原点/特征1”。您所做的是创建一个名为origin/feature1的分支,它不跟踪任何远程分支

要修复此问题,请切换到另一个分支:

git checkout master
然后删除它:

git branch -d origin/feature1

您在这里所做的是创建一个名为origin/feature1的普通本地分支。Git在内部对此非常满意,它的名字是refs/heads/origin/feature1,它清楚地将它标记为一个普通的本地分支,尽管它让用户非常困惑,因为用户认为它看起来像一个远程跟踪分支

如图所示,您可以简单地删除带有假名称的本地分支。或者,您可以对其进行重命名,这样可以避免先将其取下:

$ git branch
  master
* origin/feature1
$ git branch -m feature1
$ git branch
  master
* feature1

请注意,实际的远程分支具有以refs/remotes/开头的完整内部名称,您可以运行git symbolic ref HEAD来查看当前分支的完整内部名称,这可能会比较容易混淆,如果您知道refs/heads/vs refs/remotes/thing。

您在这里所做的是创建一个名为origin/feature1的普通本地分支。Git在内部对此非常满意,它的名字是refs/heads/origin/feature1,它清楚地将它标记为一个普通的本地分支,尽管它让用户非常困惑,因为用户认为它看起来像一个远程跟踪分支

如图所示,您可以简单地删除带有假名称的本地分支。或者,您可以对其进行重命名,这样可以避免先将其取下:

$ git branch
  master
* origin/feature1
$ git branch -m feature1
$ git branch
  master
* feature1
请注意,实际的远程分支具有以refs/remotes/开头的完整内部名称,如果您知道refs/heads/vs refs/remotes/thing,您可以运行git symbolic ref HEAD来查看当前分支的完整内部名称,这可能比较容易混淆。

以列出所有分支

git branch
-d/-d

在本地删除分支

无论合并状态如何,删除分支

删除远程分支

-d旗:

这将删除本地分支。但它将考虑git状态。即,您必须首先提交所有更改

-D旗:

这是为了强制git删除本地分支,而不管当前您尚未进行或提交的更改。基本上两者都可以

--delete --force
推送-删除:

要删除远程分支,您不能使用branch当使用-d/-d标志时,您将其与branch命令一起使用。在本例中,您需要推送它,包括远程nameorigin

要获取源名称,请运行

git remote
列出所有分支

git branch
-d/-d

在本地删除分支

无论合并状态如何,删除分支

删除远程分支

-d旗:

这将删除本地分支。但它将考虑git状态。即,您必须首先提交所有更改

-D旗:

这是为了强制git删除本地分支,而不管当前您尚未进行或提交的更改。基本上两者都可以

--delete --force
推送-删除:

要删除远程分支,您不能使用branch当使用-d/-d标志时,您将其与branch命令一起使用。在本例中,您需要推送它,包括远程nameorigin

要获取源名称,请运行

git remote

哦,对了,git branch-d etc不会删除远程分支。完全忘记了。问题…git branch-d origin/fea并没有自动填充分支名称,尽管…@Aerovistae我也有这个问题,也许git和命名和查看本地远程设备混淆了。但是,手动编写在回答之前在本地测试确实有效。已确认!作品谢谢。哦,对了,git branch-d etc不会删除远程分支。完全忘记了。问题…git branch-d origin/fea没有自动填充分支名称,尽管…@Aerovistae我也有这个问题,也许git是混淆的
命名并查看本地远程设备。但是,手动编写在回答之前在本地测试确实有效。已确认!作品谢谢