Git 在已删除的分支上拉动
Git pull while on a deleted branch
假设我检查了名为 'feature1' 的分支。在我不知道的情况下,有人删除了那个分支。当我坐在这个已删除的分支上时执行 git pull
的结果是什么?我会被调到不同的分支机构吗?
如果您在 feature1
并执行 git pull
,则不会发生任何事情。 Beyond Git 失败做拉。您将收到有关无法找到远程引用的错误(因为它已被删除)。您的 feature1
分支保持不变。
你不是"sitting on this deleted branch",因为它是在原处删除的,这不会影响你的本地仓库。您正坐在一个不跟踪远程分支的分支上。
不会发生任何会影响您的本地存储库的事情。而且你不会被切换到不同的分支。
这是您在删除的分支上执行 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
作为它的上游。
当然,其中哪一个会发生,取决于您是否设置了 p运行e 选项(例如,通过 运行ning git fetch --prune origin
,或设置 fetch.prune
到 true
在你的配置中)。
请注意,git pull
只是 运行s git fetch
——做这两件事之一——然后通常 运行s git merge
基于什么得到了。由于 nothing 将被提取,two-part pull
命令的第二步将简单地失败。 (无论您是否指定 p运行ing 都是这种情况——fetch 步骤没有在 origin
上看到任何名为 feature1
的内容,并且拉取代码注意到了这一事实。)
假设我检查了名为 'feature1' 的分支。在我不知道的情况下,有人删除了那个分支。当我坐在这个已删除的分支上时执行 git pull
的结果是什么?我会被调到不同的分支机构吗?
如果您在 feature1
并执行 git pull
,则不会发生任何事情。 Beyond Git 失败做拉。您将收到有关无法找到远程引用的错误(因为它已被删除)。您的 feature1
分支保持不变。
你不是"sitting on this deleted branch",因为它是在原处删除的,这不会影响你的本地仓库。您正坐在一个不跟踪远程分支的分支上。
不会发生任何会影响您的本地存储库的事情。而且你不会被切换到不同的分支。
这是您在删除的分支上执行 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
作为它的上游。
当然,其中哪一个会发生,取决于您是否设置了 p运行e 选项(例如,通过 运行ning git fetch --prune origin
,或设置 fetch.prune
到 true
在你的配置中)。
请注意,git pull
只是 运行s git fetch
——做这两件事之一——然后通常 运行s git merge
基于什么得到了。由于 nothing 将被提取,two-part pull
命令的第二步将简单地失败。 (无论您是否指定 p运行ing 都是这种情况——fetch 步骤没有在 origin
上看到任何名为 feature1
的内容,并且拉取代码注意到了这一事实。)