公司内部使用码云或是github不是一个很好的选择,为了代码安全和不被网络限制而随时随地的编码和提交,我们也可以搭建一个自己的 git 仓库来管理我们的代码,市面上有很多 git仓库 的管理工具,这里我是用的是 Gitea,官网地址 https://docs.gitea.io/zh-cn/email-setup/
Gitea 提供众多的安装方式,有docker、二进制安装、包管理器安装等,附带较为全面的文档教程。以二进制包说明,操作如下:
# 下载
wget -O gitea https://dl.gitea.io/gitea/1.16.9/gitea-1.16.9-linux-amd64
# 给文件权限
chmod +x gitea
# 建立gitea并设置密码,这个必须做,否则其他用户启动报错
useradd -m gitea
passwd gitea
# 查看所有用户
cat /etc/passwd |cut -d: -f 1-3
下载完成并且配置好权限后,需要对 gitea 的数据库,服务地址等进行配置才可以启动,进入 /git/custom/conf 编辑 app.ini 文件,修改内容如下:
APP_NAME = 公司名称
# 这个运行用户
RUN_USER = gitea
RUN_MODE = prod
# 这里配置你的数据库
[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gitea
USER = root
PASSWD = xxxxxxxx
SCHEMA =
SSL_MODE = disable
CHARSET = utf8mb4
PATH = /opt/software/git/data/gitea.db
LOG_SQL = false
# 不用管
[repository]
ROOT = /opt/software/git/data/gitea-repositories
# 服务器配置
[server]
# ssh域配置自己的服务器IP最好
SSH_DOMAIN = xx.24x.x0.9x
# 这里也是服务器IP
DOMAIN = xx.24x.x0.9x
# 端口
HTTP_PORT = 3000
# 访问地址
ROOT_URL = http://xx.24x.x0.9x:3000/
DISABLE_SSH = false
SSH_PORT = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /opt/software/git/data/lfs
LFS_JWT_SECRET = 3SGYDlqNRv50x2yR4TJS3-TywPSt6ZpFErNHPY0ySJ8
OFFLINE_MODE = false
以上的基础配置完成后,就可以尝试启动了,记得启动时切换到你为此添加的新用户
./gitea web
当创一个工单得时候,我想通知跟工单有关系的人,gitea 是提供这样的配置,首先我们需要配置邮件服务,然后在服务中启用 工单 操作提醒。邮件需要在 /git/custom/conf 编辑 app.ini 文件进行修改配置:
[mailer]
ENABLED = true
FROM = gitea@mydomain.com
MAILER_TYPE = smtp
HOST = mail.mydomain.com:587
IS_TLS_ENABLED = true
USER = gitea@mydomain.com
PASSWD = `password`
一些其他邮箱协议配置可以参考 https://docs.gitea.io/zh-cn/email-setup/,password 是需要进行申请认证的一串字符。
接着我们需要在服务中开启工单操作提醒
[service]
REGISTER_EMAIL_CONFIRM = false
# 工单服务提醒
ENABLE_NOTIFY_MAIL = true
DISABLE_REGISTRATION = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.localhost
关于服务配置可以参考这里:https://docs.gitea.io/zh-cn/config-cheat-sheet/#service-service,配置完成后重新启动,新加工单就可以让对方收到邮件了,注意如果是自己建的工单,自己是收不到的。
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g
假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案
我正在尝试获得良好的Ruby编码风格。为防止意外调用具有相同名称的局部变量,我总是在适当的地方使用self.。但是现在我偶然发现了这个:classMyClass上面的代码导致错误privatemethodsanitize_namecalled但是当删除self.并仅使用sanitize_name时,它会起作用。这是为什么? 最佳答案 发生这种情况是因为无法使用显式接收器调用私有(private)方法,并且说self.sanitize_name是显式指定应该接收sanitize_name的对象(self),而不是依赖于隐式接收器(也是
关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec
我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co
我正在安装gitlabhq,并且在Gemfile中有对某些资源的“git://...”的引用。但是,我在公司防火墙后面,所以我必须使用http://。我可以手动编辑Gemfile,但我想知道是否有另一种方法告诉bundler使用http://作为git存储库? 最佳答案 您可以通过运行gitconfig--globalurl."https://".insteadOfgit://或通过将以下内容添加到~/.gitconfig:[url"https://"]insteadOf=git://
Activeadmingem已添加到我的rails项目中,但每次我尝试安装railsgactive_admin:install时,我都会收到类似的错误git://github.com/activeadmin/activeadmin.git(atmaster)isnotyetcheckedout.Runbundleinstallfirst.我肯定在运行“railsgactive_admin:install”之前运行了bundle。运行“bundleshow”后,我看到我已将“*activeadmin(1.0.0.pre3f916d6)”添加到我的项目中,但不断收到此错误消息。我的gem文
来自Java,我正在尝试在Ruby中实现LinkedList。我在Java中实现它的通常方法是有一个名为LinkedList的类和一个名为Node的私有(private)内部类,其中LinkedList的每个对象都作为Node对象。classLinkedListprivateclassNodeattr_accessor:val,:nextendend我不想将Node类暴露给外部世界。然而,通过Ruby中的这个设置,我可以使用这个访问LinkedList类之外的私有(private)Node类对象-node=LinkedList::Node.new我知道,在Ruby1.9中,我们可以使用