git - 通过git更新github wiki文件

标签 git github

我想制作一个构建脚本,将一些图像发布到 imgur 并更新 markdown 文件。我希望 wiki 页面成为存储库中的文字 .md 文件。这可能吗?我能想到的最好办法就是拥有一个链接到 .md 文件的 wiki 页面。

[Link to actual wikipage](https://github.com/.../somefile.md)

这是一个我不想点击的额外链接。

任何想法将不胜感激。

最佳答案

这很容易实现,无需子模块

正如已经说过的,github wiki 本身就是一个存储库。它可以被克隆并推送到其他一切。对 wiki 文件的任何编辑实际上都是一次提交。

literal .md file from the repo.

如果 .md 不必是来自 main 存储库的文件(我不明白为什么它必须如此),您可以生成将其保存到本地 wiki 存储库、提交并推送。如果确实必须在主文件中,那么您可以 checkout 单个文件。

制作 wiki 存储库的本地克隆

#the link is on the wiki page
#do it outside of your main project directory
git clone https://github.com/myname/myproject.wiki.git

wiki 存储库中仅包含 .md

KISS行动原则。

#when images are posted and new file contents generated
cd /path/to/myproject.wiki
git add somefile.md
git commit -m'updated imgur files'
git push

从本地计算机上的主存储库添加 .md

这很好,因为它在 wiki 存储库中不占据额外的位置。如果文件始终相同并且路径没有改变,您可以创建一个批处理/shell 脚本并运行它。

cd /path/to/myproject.wiki
# the "use a different working directory" magic 
git --work-tree=/path/to/myproject/main/repo add somefile.md
#now it's in your index (stage).
git commit -m'updated imgur files'
git push origin

从 GitHub 上的主存储库查看 .md

这是最糟糕的方式,因为 git fetch 实际上将整个主存储库下载到您的 wiki 存储库中(不是实际文件,而是 Git 内部文件)。它需要磁盘空间和互联网带宽。这是一个丑陋的解决方案 =)

cd /path/to/myproject.wiki
git remote add mainrepo https://github.com/myname/myproject.git
git fetch mainrepo

#the "checkout one file" magic:
git checkout mainrepo/master -- somefile.md

#now it's in your working directory.
git add somefile.md
git commit -m'updated imgur files'
git push origin

如果您找不到 wiki 存储库的链接,它位于 wiki 页面上并且看起来是一样的。

enter image description here

关于git - 通过git更新github wiki文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30610434/

相关文章:

git - 为什么重新调整的提交 ID 与精心挑选的 ID 不同?

git - 如何为 git diff 中使用的寻呼机设置标签大小?

git - 一次性将本地 git repo 与远程同步,丢弃本地更改/提交

git - 错误 : RPC failed; result=55, HTTP 代码 = 0 增加缓冲区没有成功

git stash - 没有要保存的本地更改但未跟踪的文件

git - sh 脚本 : using conditionals, git 更新后脚本

git - Git 软件(例如 Gitbox、Github、SourceTree)可以使用远程仓库而不是本地仓库吗?

git - 如何基于 gh-pages 分支创建主分支?

email - Github API 无法设置用户电子邮件

firebase - 无法通过 `CompileOptions.compilerArgs` 指定 -processorpath 或 --processor-path。请改用 `CompileOptions.annotationProcessorPath` 属性