Git在被删除的分支上拉

Git在被删除的分支上拉,git,version-control,git-pull,Git,Version Control,Git Pull,假设我签出了名为“feature1”的分支。在origin,在我不知道的情况下,有人删除了那个分支。当我坐在这个被删除的分支上时,执行git pull的结果是什么?我会被移动到另一个分支吗?如果您使用feature1并执行git pull,则不会发生任何事情。超越Git无法完成拉。您将得到一个关于无法找到远程引用的错误(因为它已被删除)。您的功能1分支保持不变 您不是“坐在这个已删除的分支上”,因为它是在原始位置删除的,这不会影响您的本地回购。您所在的分支不跟踪远程分支。如果您使用feature

假设我签出了名为“feature1”的分支。在origin,在我不知道的情况下,有人删除了那个分支。当我坐在这个被删除的分支上时,执行
git pull
的结果是什么?我会被移动到另一个分支吗?

如果您使用
feature1
并执行
git pull
,则不会发生任何事情。超越Git无法完成拉。您将得到一个关于无法找到远程引用的错误(因为它已被删除)。您的
功能1
分支保持不变


您不是“坐在这个已删除的分支上”,因为它是在原始位置删除的,这不会影响您的本地回购。您所在的分支不跟踪远程分支。

如果您使用
feature1
并执行
git pull
,则不会发生任何事情。超越Git无法完成拉。您将得到一个关于无法找到远程引用的错误(因为它已被删除)。您的
功能1
分支保持不变


您不是“坐在这个已删除的分支上”,因为它是在原始位置删除的,这不会影响您的本地回购。您所在的分支机构不跟踪远程分支机构。

不会发生任何会影响本地回购的情况。而且你也不会被转到另一个分支

以下是在对已删除的分支执行
git pull
时返回的实际信息(假设该分支设置为跟踪同名的远程分支):
不会发生任何会影响本地回购的事情。而且你也不会被转到另一个分支

以下是在对已删除的分支执行
git pull
时返回的实际信息(假设该分支设置为跟踪同名的远程分支): 你的分支机构就是你的。只有你才能删除它们

如果分支
feature1
origin/feature1
作为其上游,并且
feature1
已在
origin
上删除,则在运行
git fetch origin
时会发生以下情况之一:

  • 没什么。您的
    origin/feature1
    将继续存在。由于
    origin
    上没有
    feature1
    供您的
    origin/feature1
    记住,所以您的Git的
    origin/feature1
    就永远保持不变

  • 由于
    origin
    上不再有
    feature1
    ,并且您已经设置了“prune”选项,您的Git将删除您的
    origin/feature1
    。您自己的
    feature1
    现在有一个不存在的
    origin/feature1
    作为其上游

当然,发生哪种情况取决于是否设置了prune选项(例如,通过运行
git fetch--prune origin
,或者在配置中将
fetch.prune
设置为
true

请注意,
git pull
只是运行
git fetch
——它执行这两件事情中的一件,然后根据所获取的内容正常运行
git merge
。由于不会获取任何内容,由两部分组成的
pull
命令的第二步将失败。(这种情况下,无论您是否指定修剪,提取步骤在
origin
上都没有看到任何名为
feature1
的内容,并且提取代码会注意到这一事实。)

您的分支属于您。只有你才能删除它们

如果分支
feature1
origin/feature1
作为其上游,并且
feature1
已在
origin
上删除,则在运行
git fetch origin
时会发生以下情况之一:

  • 没什么。您的
    origin/feature1
    将继续存在。由于
    origin
    上没有
    feature1
    供您的
    origin/feature1
    记住,所以您的Git的
    origin/feature1
    就永远保持不变

  • 由于
    origin
    上不再有
    feature1
    ,并且您已经设置了“prune”选项,您的Git将删除您的
    origin/feature1
    。您自己的
    feature1
    现在有一个不存在的
    origin/feature1
    作为其上游

当然,发生哪种情况取决于是否设置了prune选项(例如,通过运行
git fetch--prune origin
,或者在配置中将
fetch.prune
设置为
true

请注意,
git pull
只是运行
git fetch
——它执行这两件事情中的一件,然后根据所获取的内容正常运行
git merge
。由于不会获取任何内容,由两部分组成的
pull
命令的第二步将失败。(无论是否指定修剪,都是这种情况。提取步骤在
源代码
上没有看到任何名为
feature1
的内容,并且提取代码会注意到这一事实。)