我找到了Gitlab,并且想知道是否仍然可以像Github页面一样使用Gitlab。有可能吗?
#1 楼
好消息!从8.3(2015年12月)开始,GitLab拥有“ GitLab页面”。
https://about.gitlab.com/2015/12/22/gitlab-8-3-released/
此功能在GitLab.com(运行EE)上可用,其中您可以拥有免费的无限存储库,公共/私有。
这里是有关GitLab Pages的文档,解释了如何免费在GitLab上托管静态网站。
http://doc.gitlab.com/ee/pages/README.html
#2 楼
我不确定您要问什么。您说要托管在自己的服务器上,但您的问题却是要托管像gitlab页面一样的托管服务器,而不是您自己的服务器。无论如何,这可能会有所帮助
这就是我在本地PC上所做的
mkdir folderforwebsite
cd folderforwebsite
git init
echo "hello world" > index.html
git add index.html
git commit -m "initial commit"
/>
我现在在本地有一个仓库。将其复制到服务器上
scp -r ../folderforwebsite username@mydomain.com:/path/from/root/to/webfolder
现在我将它放在远程服务器上。
ssh name@mydomain.com 'cd path/to/webfolder; git checkout -b live`
现在有网站上的主分支和实时分支。我这样做是因为AFAICT您无法推送到当前分支。因此,现在我们有了一个“实时”分支,该分支当前在远程服务器上,而另外一个“主”分支则不是远程服务器。最后,将一个远程服务器添加到我的本地存储库中。
git remote add web ssh://name@mydomain.com/path/from/root/to/webfolder
现在,无论何时我想更新网站,我都会将内容检入本地master分支中,然后运行此脚本
#!/bin/sh
set -e
set -v
git push web master
ssh username@mydomain.com git merge --ff-only master
git push
将我的内容更改为Web服务器上的非当前分支。然后,ssh
登录到Web服务器,并将“主”中的更改快速转发到当前分支。在这种情况下,“活动”分支。 --ff-only
说如果服务器上有更改,则会失败。 如果服务器上有更改,我可以使用
git pull web live
将它们拉到本地主机中。在执行任何此操作之前,我在远程服务器上设置了SSH密钥,因此我不必键入任何密码
,这绝对与github或gitlab没有任何关系。我也可以将更改推送到那里,但是它们没有连接。
#3 楼
有一个实现此目的的nodejs项目:https://github.com/Glavin001/GitLab-Pages#4 楼
通过在Google上搜索各种问题,我找到了一种方法。这可能不是最好的方法,并且可能过于复杂,但是它应该起作用,这是主要的事情。但是,如果您知道一种更好的方法或可以找到一种更好的方法,请让我知道!我发现您可以通过Git挂钩将代码部署到服务器上。您需要做的就是将SSH插入服务器,创建一个git仓库,然后设置一个挂钩以将提交推送到该仓库。这将允许您将提交推送到服务器,但此时与gitlab无关。
下一步是将gitlab的推送URL添加到同一远程。这样,您每次都将同时推送到gitlab和站点本身。结果,gitlab存储库和实际站点都将同步。尽管这是一种黑客行为,但绝对没有效率。
我从以下博客文章中找到了如何通过git通过git将代码部署到服务器上:我发现您可以根据stackoverflow上的以下问题在git中将两个推入URL添加到您的git远程中:
https:// stackoverflow。 com / questions / 14290113 / git-pushing-code-to-remote
我说过,如果您能找到更好的方法,请告诉我。这将起作用,但这意味着具有相同代码的两个版本。当然,这很麻烦,并且会浪费服务器的存储空间。
#5 楼
当前,最好的办法是将GitLab CI推送到Amazon S3之类的静态服务器。如果可以使用Git进行部署,则以下(未解决的)问题特定于如何使用Git gitlab:https://stackoverflow.com/questions/14288288/gitlab-repository-mirroring
功能跟踪器对此有特定要求:http://feedback.gitlab.com/forums / 176466-general / suggestions / 5599145-preview-render-static-html-pages-pushed-to-repos
评论
像gitlab一样,您是指GitLab的减价功能和仅通过推送到git repo即可更新网站的功能吗?我的意思是当我在gitlab存储库中进行更改时,让我的网站自动更新,所以是的。
GitHub Pages仅使用Jekyll。因此,安装+提供静态页面的Web服务器,并可能会引入一些git钩子,以自动部署推送的内容,基本上就可以完成了。
嘿@ Ajedi32这种方法的问题是,对于每个新项目,您都具有git repo和Web服务器设置。使用GitHub页面,这只是您要推送的另一个分支。
@fiorix是的,如果您想将事情自动化到那种程度,则可能需要一个稍微复杂的解决方案。虽然仍然可行,但您只需要以某种方式连接到GitLab项目创建系统(尽管我不知道确切的程度,我的猜测是最简单的方法可能涉及监视文件系统,或者可能需要对GitLab API进行一些调用)。