通过git更新github wiki文件

时间:2015-06-03 03:38:19

标签: git github

我想制作一个构建脚本,发布一些图像来imgur并更新markdown文件。我希望维基页面是来自repo的文字.md文件。这可能吗?我能想到的最好的方法是有一个链接到.md文件的wiki页面。

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

这是一个我不想遵循的额外链接。

任何想法都会受到赞赏。

2 个答案:

答案 0 :(得分:2)

这很容易实现没有子模块

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

  来自repo的

文字.md文件。

如果.md不必是仓库中的文件(我不明白为什么必须这样做),您只需将其生成到本地维基存储库,提交和推送。如果确实必须在主要文件中,则可以签出单个文件。

制作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

仅在维基回购中有.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

答案 1 :(得分:0)

您可以使用git submodule

在您的主仓库中,您可以创建Wiki仓库的子模块,然后两个存储库都链接在一起。您可以在Wiki仓库中拥有.md文件,并从主仓库访问它。

# in your main repo
git submodule add <link to wiki repo>

cd wiki_folder
# modify .md file
git add <file.md>
git commit
git push  # it's in the remote wiki repo now

cd ..
git submodule update  # the link to the wiki repo is updated