首页 > 其他分享 >使用 Gitea 搭建内网的Github

使用 Gitea 搭建内网的Github

时间:2022-09-26 09:24:40浏览次数:74  
标签:SVN gitea Github 仓库 Gitea Git 提交 使用 内网

缘由

近期就职了一家新公司,上级分配给我的第一个任务就是对已有的项目系统提出一些优化方案。新公司目前使用的是SVN做版本管理,因为有Git的使用经验,因此上手很快,但在使用的过程中,相比于Git,我遇到了几个不便利的问题:

  1. 主流IDE如 VS,VS Code都默认支持Git,有专门的Git窗口,可以查看变动的文件及数量,Git更新提交等操作, 但SVN还需要下载一个插件,使用体验不及原生支持。
  2. 在我做了一些测试性更改之后,准备先提交,然后继续修改,但点了下提交之后发现已经推到服务器了,这时我想到了SVN和Git的一个核心区别就是Git是分布式的,本地就是完完整整的仓库,可以在本地多次提交,而不更改服务器上的仓库。而SVN是集中式,本地并不是一个完整的仓库。我的个人的习惯是每实现一个小功能,便提交一次,最终在推送到远程仓库之前,再次整理下代码,将相似的提交合并等,最终推送到服务器。没有本地提交这个功能,多少觉得有点不便。
  3. 在我做了代码构建之后,发现很多bin、obj下的文件如dll,缓存文件等 也出现在了提交列表里,虽然不会默认提交,但也会影响提交的体验,如果新加了文件,就需要在这一堆文件里找到新文件进行勾选,然后才会被提交到服务器。 咨询了同事后告知可以在SVN的全局设置要忽略的文件、文件夹等。项目级别可以配置,但比较麻烦,每个文件夹都需要配置下对bin、obj等文件夹或者具体文件的忽略,如果选择循环配置那么会改动很多很多的文件夹,即使某个文件夹并不需要配置。而这在Git是非常方便的,一个.gitignore文件就搞定了,大部分的语言项目都配备有默认的 .gitignore模板,即使切换机器,新人报道,也不需要重新配置。

当然还有一些小问题:如何在本地有大量改动的情况下切换去修改紧急的bug,如何做代码评审等, 基于这些小问题,我把使用Git来做版本管理作为了一个优化项,后续的交流过程,领导也表示了理解,对代码评审等功能也比较期待,希望做出此项改动,但是有要求代码不出外网,因此不能使用 Github,Gitee等云托管网站,对企业也有免费的支持。因此只能寻找开源解决方案,在内网搭建一套Git源码托管服务,起初我觉得这是一个很艰巨的任务,但实际操作下来,发现极其简单。

使用 Gitea 来搭建Git托管服务

寻找解决方案时第一眼就找到了Gitea,Gitea是一个开源的轻量级代码托管解决方案,后端采用Go编写,采用MIT许可证,目前在Github上已有32k+的star,文档齐全,对中文的支持也很好,除CICD功能外,基本和Github/Gitee等功能相同,安装也很方便,支持二进制,docker等。

安装

  1. 这里选择的是二进制安装,从官方下载页面下载二进制程序 https://dl.gitea.io/gitea/1.17.2 我这里选择的是 gitea-1.17.2-gogit-windows-4.0-386.exe

  2. 双击打开之后,本以为是安装程序,实际确实一个Web服务,这个Git托管服务已经跑起来了,提示已经监听了本地的3000端口。

配置

  1. 本地打开 localhost:3000 之后默认需要配置些基本信息,如 站点名称、根目录、日志目录等,数据库支持 MySQL、PostgreSQL、MSSQL、SQLite3, 若使用mysql,需要输入用户名密码。如果没有MySql,建议直接选择SQLLite3,然后什么都不用修改。

  1. 点击最下面的立即安装,1分钟后即可使用,默认会转到登录页。

  1. 在防火墙里开放下 3000端口,就可以在局域网内访问了。

  2. 使用命令设置为 windows服务,如果服务器重启,服务会自动启动。

    sc.exe create gitea start= auto binPath= "\"C:\gitea\gitea.exe\" web --config \"C:\gitea\custom\conf\app.ini\""

使用

创建用户并登录后,便和Github 的使用方法完全一致,仓库也分私有仓库和公开仓库,也可以创建 组织、团队等。点击探索可以查看该站点下的所有公开仓库,个人首页长这样。

仓库详情页:也支持watch、star、fork等,提Issue,Pull Request,也还支持上传各种包,如npm,nuget,docker image等,公司内部的包管理都可以放到这里,然后项目里就可以共享了。

迁移SVN仓库

使用 Git 命令行可以很方便的把SVN仓库迁移到Git仓库

git.exe svn clone <svn_repo_url> <folder> -T trunk -b branches -t tags

总结

整个过程还是比较顺利的,Gitea使用起来体验也很好,缺少的CICD功能可以使用Webhook + Jenkins来作为补充,更加方便和灵活。

标签:SVN,gitea,Github,仓库,Gitea,Git,提交,使用,内网
From: https://www.cnblogs.com/chuxin6/p/16729738.html

相关文章

  • 不可错过的效能利器「GitHub 热点速览 v.22.39」
    如果你是一名前端工程师且维护着多个网站,不妨试试本周榜上有名的HTML-first的Qwik,提升网站访问速度只用一招。除了提升网站加载速度的Qwik,本周周榜上榜的Whisper也......
  • 使用github时遇到的一些问题与解决办法
    fatal:unabletoaccess‘https://github.com/.../.git/‘:参见:https://blog.csdn.net/xyaicwj/article/details/125256149......
  • 【Vue项目实践】套用github 上的项目(vue3 + Element Plus)运行 可编辑表格
    在Vue3+ElementPlus中生成动态表格gitclonehttps://github.com/kalacloudCode/how-to-build-dynamic-table-in-vue-element-plus.git参考博客:vue3+Element......
  • Github能够访问但是不能clone文件
    最近换了个地方,先是访问不了github,我意思到我这个地方区域网是无法访问的,后面修改DNS,还是不行,最后浏览器配置能够访问了。然后坑爹地方又出来了,项目不能clone,说什么clon......
  • win平台配置多个内网ip
    SpringBoot应用绑定指定的ip地址启动server:port:8888address:192.168.0.52说明:每个主机号为0的ip为当前网段的子网掩码每个主机号为1的ip为当前网段的默认......
  • 内网时间服务器chrony
    时间服务器172.31.1.4客户端:172.31.1.2,172.31.1.3服务端:1.更改/etc/chrony.conf。其中,对于内网环境,必须要启用localstratum10。因为你需要将本机的时间,给客户端做时......
  • Jenkins 踩坑 (四)|基于接口自动化测试完成 Jenkins+GitHub+Allure 的结合
    一、前提关于使用Jenkins创建job完成自动化测试,核心在于项目的拉取和执行,至于job的创建大同小异,需要了解的可以参考文章:[Jenkins之job创建、参数化与定时构建以及......
  • Github发布了Electron 1.0版本
    Github称,Electronapp就像一个微型的网页浏览器一样,具有与本地文件系统交互的功能,网页浏览器已经打包在了app中。这样,应用就可以一次编写,在各个操作系统上运行。Electro......
  • Git将本地仓库上传到github
    这里采用简单的描述,提供两种方式:一、连接本地文件夹和远程仓库1.使用pull——拉取github项目文件(1)进入到自己要上传的文件夹内部,然后gitbashhere(2)输入命令gitini......
  • 本地windows上的SQLog 连接内网 docker上的mysql
    1进入docker记下我的映射端口号12345  dockerexec-itda9aad4acad8sh 2登陆账号mysql-uroot-h127.0.0.1-P3306-p密码默认123456 3开启远......