我想制作一个构建脚本,发布一些图像来imgur并更新markdown文件。我希望维基页面是来自repo的文字.md文件。这可能吗?我能想到的最好的方法是有一个链接到.md文件的wiki页面。
[Link to actual wikipage](https://github.com/.../somefile.md)
这是一个我不想遵循的额外链接。
任何想法都会受到赞赏。
答案 0 :(得分:2)
这很容易实现没有子模块。
正如已经说过的那样,github wiki本身就是一个存储库。它可以被克隆并推送到其他所有东西。任何wiki文件的编辑实际上都是提交。
来自repo的文字.md文件。
如果.md
不必是主仓库中的文件(我不明白为什么必须这样做),您只需将其生成到本地维基存储库,提交和推送。如果确实必须在主要文件中,则可以签出单个文件。
#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
.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
答案 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