我目前有一个git repo,用于发布到GitHub Pages的Jekyll博客。当我最初设置它时,我在博客目录的根目录初始化了git。这意味着我正在提交并推送所有Jekyll源文件,而不仅仅是静态呈现内容。基本上,我想从
推进$~/writing/_site/
作为根,而不是我目前正在推动的
$~/writing/
我想开始推送远程repo 只是静态内容,只将所有源文件保留在我的本地计算机上。我考虑过创建一个本地分支并改变一些事情,但我认为这不会达到我的结果。这不是我改变内容本身,而是推送子目录而不是父目录。
我认为我可以发出
$ git push --force
从父目录然后在子目录中初始化一个repo并从 it 推送,但这似乎是一种粗暴的无知。
我可以git-push --force
,将Jekyll源复制到另一个未跟踪的目录,然后创建一个分支并将git-rm
所有源和git-mv
子目录中的内容创建到父目录中但这也像用一块面包油画。
答案 0 :(得分:2)
假设您希望继续对站点的源代码进行版本控制,为了做您想做的事情,您将需要两个完全独立的Git存储库。一个用于存储源代码,另一个用于存储Jekyll在_site
文件夹中生成的静态内容。
工作流程将是这样的:
jekyll
以构建您的网站(生成_site
)\_site
移至回购 B \
您可能希望自动执行5
到8
的步骤,因为它们很无聊且重复。为此,您可以使用大量工具,例如Rake,Gulp,Grunt等。
如果你选择Rake,你可能还想看看jekyll-rakefile。
答案 1 :(得分:0)
请勿将其他网站设为git
存储库,并且不要使用git
传输静态内容。正如torek的评论所述,git
会传达所有已签入的内容(以及仅签入的内容)。相反,在构建之后,您应该使用其他工具(例如scp
或rsync
)来传输内容。