我想制作一个构建脚本,将一些图像发布到 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 页面上并且看起来是一样的。
关于git - 通过git更新github wiki文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30610434/