删除 GitHub 仓库的 Wiki。

31

我是GitHub的新手。当我点击一个Wiki链接时,会为我的仓库创建一个新的Wiki页面。但我并不需要它。如果我尝试删除仅有的页面,GitHub会询问:“您确定要删除此页面吗?” 我确认了,但是什么都没有发生,页面仍然存在。虽然我不能说这很烦人,但我想知道是否有一种方法可以删除Wiki页面。


请参考:https://dev59.com/clkT5IYBdhLWcg3wALHw#42653762 - MAChitgarha
5个回答

21

在您项目的GitHub页面上点击设置按钮,取消选中Wikis

它应该会消失。


GitHub在界面方面非常精细,所以这样的事情并不太复杂。 - Blender
3
现在它在“设置->选项->功能”下。 - Nikolai
17
实际上,这只是使Wiki不可见,而并非真正删除它。如果您返回管理页面并在那里选中Wiki复选框,内容将再次可见。来源 - fnkr
@fnkr是正确的。实际上,如果您在某个地方检出了您的wiki,您仍然可以将其推送到该位置!如果您能猜出raw.githubusercontent.com的URL,您还可以访问一些非markdown文件... - daveloyall
它消失了,但并没有被删除。它只是作为菜单选项被删除了。 - Xonatron

16

一如既往,缺失的部分在GitHub上。结合惯用的git技巧,你可以擦除GitHub repo上的所有数据,例如销毁wiki ACCOUNT/REPO.wiki.git

git clone git@github.com:ACCOUNT/REPO.wiki.git
cd REPO.wiki
git checkout --orphan empty
git rm --cached -r .
git commit --allow-empty -m 'wiki deleted'
git push origin empty:master --force

警告!此教程可以真正删除GitHub上某个仓库的所有数据(除了可能仍然在某处缓存的内容)。我的测试表明,甚至可以……

git clone --mirror git@github.com:ACCOUNT/REPO.wiki.git

之后无法恢复旧数据的任何痕迹。顺便说一句,学习理解上述内容是学习 git 的好练习。


1
请注意,您可能需要删除所有其他分支和标签,除了“master”以外。还要注意,在GitHub上可以在“设置”中保护分支。这样的受保护分支拒绝使用“--force”推送的内容。所以一定要取消保护相关的分支。 - Tino

10

首先,发现您的仓库URL:

$ cd your-project
$ git remote -v
origin  git@github.com:belden/foo.git (fetch)
origin  git@github.com:belden/foo.git (push)

克隆您的维基; 它的URL是您项目的URL,以'wiki.git'结尾:

$ cd /tmp
$ git clone git@github.com:belden/foo.wiki.git foo-wiki
Cloning into 'foo-wiki'...
remote: Counting objects: 375, done.
remote: Compressing objects: 100% (159/159), done.
remote: Total 375 (delta 214), reused 375 (delta 214)
Receiving objects: 100% (375/375), 78.41 KiB, done.
Resolving deltas: 100% (214/214), done.

现在就像是你要从一个普通项目中删除文件一样处理它:

$ cd foo-wiki
$ git rm *.md
$ git commit -am "remove wiki pages"
$ git push

完成了,任务结束。


这将保留完整的历史记录,以便您可以在需要时恢复Wiki的旧内容(请参见git log)。如果您想要删除历史记录,请参考我的变体。 (git不会让您在没有git push --force的情况下清除历史记录,因此如果您省略了--force,在这方面您是安全的) - Tino

6
我发现最简单的方法如下:

以下是详细步骤:

git clone git@github.com:$USER/$REPO.wiki
cd $USER/$REPO.wiki
git push origin --delete master

然后从 "设置" -> "功能" 中取消选中 "维基"。


2
这应该被视为被接受的答案。太遗憾了,它来得太晚了。 - Adrian
git push git@github.com:$USER/$REPO.wiki --delete master将上述代码翻译为中文: - Andrei Neculau

0

如果您从付费的私有层(允许在私有存储库上使用维基)转移到免费层(不允许),则删除维基也可能是必要的。

请注意,您只能在未存档的存储库上禁用维基(使用设置页面上的复选框)- 存档的存储库没有该选项;要在它们上面执行此操作,您必须暂时取消存档。

如果您希望保留内容,则一种好的选择是以正常方式克隆维基存储库:

git clone git@github.com:OWNER/REPO.wiki.git

接着在Github上创建一个名为REPO-wiki的新仓库。然后您可以编辑REPO.wiki/.git/config文件,在[ remote "origin"] 下的url =中更改一个字符,从 REPO.wiki 改为REPO-wiki


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接