Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Git警告我可能已删除的远程分支_Git - Fatal编程技术网

如何让Git警告我可能已删除的远程分支

如何让Git警告我可能已删除的远程分支,git,Git,想象一下,我有一个从某个来源克隆的本地存储库。在我最初克隆时,起源有四个分支:featureurea、featureB、featureC和master。如果我将更改推送到删除分支的原点,我希望在下一次发布时看到它被删除: $git拉原点 然而,当我试着用鼠标向下拉那个特定的分支时,我什么也看不到 $git拉起点 我得到以下错误: 致命:找不到远程引用 致命:远端挂断 不料 这完全有道理,因为分支实际上是从远程删除的,所以是的,ref不再存在了,但是我想知道为什么我没有得到关于这个事实的通知。遥控

想象一下,我有一个从某个来源克隆的本地存储库。在我最初克隆时,起源有四个分支:featureurea、featureB、featureCmaster。如果我将更改推送到删除分支的原点,我希望在下一次发布时看到它被删除:

$git拉原点

然而,当我试着用鼠标向下拉那个特定的分支时,我什么也看不到

$git拉起点

我得到以下错误:

致命:找不到远程引用
致命:远端挂断 不料

这完全有道理,因为分支实际上是从远程删除的,所以是的,ref不再存在了,但是我想知道为什么我没有得到关于这个事实的通知。遥控器的My.git/config如下所示:

[远程“源站”]
fetch=+refs/heads/:refs/remotes/origin/
url=cjames@svn.perecep.com:/data/git/perecep.git


我已经编写了一个小的shell脚本,它使用git ls remote以及git branch-r的输出来检测远程引用,这些引用的分支在服务器上已不存在,并提示我是否要删除它们,但我想知道我是否只是在这里做了一些固有的错误?

我不认为您是这样做的做错事。您的本地分支不依赖于远程分支的存在,当您的本地分支(名称相同,表面上历史相同)继续存在时,删除远程分支是一种完全有效的状态。这是您描述的“集中式”方法,如果有的话,在Git中会被认为是非正统的


编辑:切题来说,您可能对git branch的
--track
--no track
选项以及
branch.autosetupmerge
配置变量感兴趣。

好的,不需要特殊脚本。我想我忽略了这个命令

$git远程修剪源

从手册页:

prune Deletes all stale tracking branches under . These stale branches have already been removed from the remote repository referenced by , but are still locally available in "remotes/". With --dry-run option, report what branches will be pruned, but do no(sic) actually prune them. 修剪 删除下所有过时的跟踪分支。这些枯枝 已从引用的远程存储库中删除 ,但仍在“remotes/”中本地可用。 使用--dry run选项,报告将要修剪的分支,但不执行 没有(原文如此)实际修剪它们。
我在Git b/c中遵循一个更为“中心服务器”的工作流程我在一个公司环境中,这就是笔记本电脑的开发人员现在更愿意共享代码的方式(通过在中心服务器上创建公共主题分支,将其更改推送到以供协作)。因为我们刚从SVN过渡过来,所以他们对这一点比较满意。我想我担心的是,在创建了几个这种性质的临时分支并在功能/主题集成后被删除之后,所有开发人员现在在其本地repo中都有大量陈旧的远程分支引用。是否有任何设置可以在更新远程分支时自动执行此操作?