我可以想到目前有效的两种解决方案:
- 重命名您的存储库以开始
tags
。 因此,例如,代替my-repo
,将其重命名为tags-my-repo
。或者:
- 创建一个新分支,但不要将其设为默认值。然后,在默认分支上,删除所有文件。这样做的副作用是 a) 使默认分支在保持公共状态的同时对爬虫隐藏之外毫无用处,以及 b) 迫使您将新分支用作主分支。您仍然可以根据需要重命名现在无用的默认分支和事实上的新分支。
为什么我认为该线程中的旧解决方案不再起作用: https ://github.com/robots.txt从那时起发生了变化。在 2013 年提出原始问题时,robots.txt 看起来像这样:
User-agent: Googlebot
Allow: /*/*/tree/master
Allow: /*/*/blob/master
Disallow: /ekansa/Open-Context-Data
Disallow: /ekansa/opencontext-*
Disallow: /*/*/pulse
Disallow: /*/*/tree/*
...
而现在没有Allow
s 而只有Disallow
s:
User-agent: *
Disallow: /*/pulse
Disallow: /*/tree/
Disallow: /gist/
Disallow: /*/forks
...
Disallow: /*/branches
Disallow: /*/tags
...
如果您只是创建一个新分支,将其设为默认分支,然后删除旧分支,则 URLhttps://github.com/user-name/repo-name
将仅显示您的新默认分支并在当前robots.txt
.
我上面的解决方案是如何工作的:( 它们基于谷歌目前对 robots.txt的解释)
解决方案 1将使您的 repo 的 URL 匹配Disallow: /*/tags
,从而将其排除在爬网之外。因此,事实上,您可以使用disallow
表单路径中的任何单个单词为您的 repo 名称添加前缀,/*/word
而无需以斜杠结尾(因此tree
,由于以斜杠结尾,因此不起作用Disallow: /*/tree/
)。
解决方案 2只是确保默认分支(即唯一已爬网的分支)不包含您不想爬网的内容。换句话说,它将所有相关的东西“移动”到一个分支,所以它们在 中https://github.com/user-name/repo-name/tree/branch-name
,由于Disallow: /*/tree/
.
免责声明
- 显然,我的解决方案在很大程度上取决于
robots.txt
任何给定时间点的情况。
- 这并不能保证它不会出现在搜索结果中。
- 这应该很明显:由于您的存储库是公开的,因此已经知道您的用户名的人总是可以导航到您的内容。这个事实与手头的问题无关,但我认为我应该把它放在那里。