在PyCharm终端中,“ git branch -a”显示已删除的远程git(Github)存储库

问题描述 投票:0回答:2

enter image description here

通过使用PyCharm中的VCS选项为PyCharm项目创建了GitHub存储库。之后,创建了另一个名为Pytest-bdd的分支。现在,存储库本身已从Github手动删除。但是,当从PyCharm终端运行命令git branch -a时,它将显示以下选项

  1. * master
  2. remotes/github/Pytest-bdd
  3. remotes/github/master

为什么它在Github中不再存在时,为什么显示远程存储库。

git github pycharm
2个回答
1
投票

这些是“远程跟踪分支” https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches。他们会记住“自您上次与之通信以来的远程状态”,这意味着他们不会通过您通过其他方式(例如,远程访问)对远程设备所做的操作来实时更新。通过删除GitHub上的仓库。

如果要从本地存储库中清除这些内容,请执行以下两项操作:

  1. 删除这些远程跟踪分支
  2. 删除遥控器(可能是)

0
投票

TL; DR:删除遥控器

如果整个存储库已删除,则应删除远程:

git remote remove github

这还将删除该遥控器附带的所有远程跟踪名称。

Long:遥控器和遥控器名称

使用Git时,您经常使用两个甚至超过两个的Git存储库。每个存储库都位于某台计算机上的某个位置。某些计算机上存在的文件或其他资源通常可以使用统一资源定位器或URL来命名。

例如,如果您在GitHub上有一个名为https://github.com/user/repo.git的Git存储库,则此存储库为URL

。每次您想在自己的计算机上使用自己的Git在GitHub上调用负责该仓库的GitHub上的Git时,都可以键入此字符串。但是输入一个简短的名字更容易:git fetch origin 比更长的一个:
git fetch https://github.com/user/repo.git

此短名称origin

远程
。在Git中,一个遥控器存储一个URL。它可以做更多的事情,但是存储URL是其最基本的工作。

当您第一次clone

一些现有存储库时,Git添加远程名称origin来保存您在git clone命令中使用的URL。因此,在您自己的计算机上,您自己的Git具有origin是很常见的。

您可以添加更多的遥控器。首先,您需要拿出要使用的name

,例如hubert-blaine-wolfeschlegelsteinhausenbergerdorff-srhubert-blaine-wolfeschlegelsteinhausenbergerdorff-srfredgithub。较短的名称可能会更好,但是您应该使用

对您有帮助的名称。接下来,您需要一个URL,一些Git存储库在调用该URL时会回答该Internet电话。然后,您可以使用upstream添加

远程和URL对:git remote add例如。
[使用git remote add upstream https://github.com/user2/repo2.git
时,您的Git调用了其他Git。如果使用

remote

来命名另一个Git,则Git会将URL从Git配置文件中删除,并使用该URL来调用另一个Git。另一个Git将为您的Git列出

its

分支名称。在git fetch会话结束时,您的Git将在您的存储库中创建一系列相似的名称。为了避免踩到您的branch名称,您的Git使用

remote-tracking名称

在存储库中创建其分支名称。要将其branch名称转换为您的remote-tracking名称,您的Git会将您的remote名称(例如git fetchorigin)粘贴在其branch前面名称。因此,他们的upstream成为您的masterorigin/masterupstream/master这些名称中的内部,all具有长(或全名)形式:例如,您自己的github/master分支实际上是master,而不是master。这里的refs/heads/masterorigin/master的缩写。 Git通常会删除这些前缀,因此您不必查看或输入它们。

当您运行refs/remotes/origin/master时,您的Git将列出这些远程跟踪名称。当您运行git branch -rgit branch时,您的Git将列出您的branch

名称。当您使用git branch -l时,您的Git将列出

both,但这一次,您的Git不会将远程跟踪名称缩短为git branch -a,而是将其缩短为origin/master

这是您在问题顶部放置的图像中显示的内容。 分支名称remotes/origin/master

您的

存储库中的原始名称)为绿色; 远程跟踪名称(其分支名称,但已由您的Git修改以适合您的存储库)为红色。由于GitHub上的存储库已完全消失,因此所有这些红色文本远程跟踪名称现在都已无用。您可以从您自己的Git存储库中逐一删除它们。但是由于GitHub上的存储库已完全消失,因此

remote

名称master本身也没有用。不必费心地删除每个远程跟踪名称,而将遥控器本身留在后面,您可以完全删除该遥控器。删除遥控器会删除您自己的所有Git的遥控器跟踪名称复制自,因此一个删除将完成所有操作。
© www.soinside.com 2019 - 2024. All rights reserved.