阿里云国际站:怎样搭建私有Git仓库?
wptr33 2025-05-15 21:28 3 浏览
本文由【云老大】 TG@yunlaoda360 撰写
基于 Linux 系统搭建
- 安装 Git :确保服务器已安装 Git,可通过命令 git --version 检查,未安装则使用系统包管理工具安装,如在 Ubuntu 系统中可运行sudo apt-get update和sudo apt-get install git -y命令来安装。
- 创建 Git 用户 :创建一个专门用于运行 Git 服务的用户,例如运行sudo adduser git命令创建用户名为 git 的用户,之后在登录服务器时需使用该用户。
- 创建仓库目录并初始化 :切换到 git 用户,创建仓库目录并进入该目录,使用git init --bare命令初始化裸仓库,如mkdir mygitrepo.git和cd mygitrepo.git,再执行git init --bare,初始化成功后会生成一些子目录。
- 设置客户端访问 :在客户端机器上配置 SSH 密钥,将生成的公钥添加到服务器上 git 用户的~/.ssh/authorized_keys文件中,然后在客户端通过git clone git@服务器IP:仓库路径命令克隆远程仓库进行使用。
使用 GitLab 搭建
- 注册与登录 :访问GitLab 官方网站,选择合适的版本并注册账号,完成注册后登录到 GitLab 平台。
- 创建项目 :在 GitLab 界面上点击 “New project” 按钮创建新项目,填写项目名称、描述等信息,并选择项目的可见性(公开、私有或内部),然后点击 “Create project” 按钮完成创建。
- 推送本地代码 :在本地项目目录中初始化 Git 仓库并添加远程仓库地址,执行git remote add origin http://gitlab服务器地址:端口/用户名/项目名.git命令,之后通过git push -u origin master命令将本地代码推送到 GitLab 仓库中。
使用 Gitea 搭建
- 下载与安装 :根据服务器操作系统选择合适的 Gitea 二进制文件进行下载,可通过命令wget -q https://dl.gitea.io/gitea/1.19.5/gitea-1.19.5-linux-amd64下载,然后使用mv命令重命名文件并赋予执行权限。
- 创建数据库 :可以使用 MySQL、PostgreSQL 等数据库,以 MySQL 为例,登录数据库服务器创建 Gitea 专用数据库和用户,并授权该用户对数据库的完全访问权限。
- 运行 Gitea 并初始化 :使用命令./gitea web启动 Gitea 应用程序,首次运行时会提示进行初始化配置,包括数据库连接信息、管理员账号等。
- 访问 Gitea 界面 :在浏览器中输入服务器的 IP 地址和 Gitea 的端口号(默认为 3000)访问 Gitea 网页界面,使用之前创建的管理员账号登录,即可开始创建和管理代码仓库。
使用 Docker 搭建
- 安装 Docker :在服务器上安装 Docker 环境,可参考Docker 官方文档进行安装。
- 拉取 Git 服务器镜像 :使用命令docker pull gitlab/gitlab-ce拉取 GitLab 的 Docker 镜像。
- 运行 GitLab 容器 :通过命令docker run --detach --hostname gitlab.example.com --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce运行 GitLab 容器,将宿主机的端口和目录映射到容器中。
- 配置与访问 :容器启动后,按照 GitLab 的初始配置向导进行设置,包括管理员密码、邮箱等,之后即可通过浏览器访问 GitLab 服务器的 IP 地址进行代码仓库的管理和使用。
- 上一篇:嵌入式开发必备技能 | Git子模块
- 下一篇:Git 入门:版本控制,高效协作
相关推荐
- 如何使用git clone克隆包含子模块的仓库
-
技术背景在软件开发中,当项目规模逐渐增大时,为了更好地管理代码,我们常常会使用子模块将项目拆分成多个独立的部分。Git作为目前最流行的版本控制系统,提供了管理子模块的功能。但在克隆包含子模块的仓库时...
- 基于Docker构建安装Git/GitLab,以及制作springboot工程镜像
-
今天给大家分享的是《领先的开源自动化服务器Jenkins的应用实战》之基于Docker安装构建Git/GitLab版本控制与代码云存储的场所;使用Git管理项目,springboot工程制作镜像知识体...
- Windows误删急救!3步找回+防删秘籍,免费工具一键恢复
-
“Shift+Delete一时爽,数据火葬场?”误删工作文档、清空珍贵照片、手滑格式化硬盘……这份Windows专属“后悔药”攻略,从...
- Git分支创建与合并
-
首先,我们创建dev分支,然后切换到dev分支:12$gitcheckout-bdev...
- Java项目版本控制的最佳实践
-
Java项目版本控制的最佳实践在Java开发的世界里,版本控制是构建高效协作和管理代码变更的基础。想象一下,如果没有版本控制,就像一群人在沙滩上画画,每个人都在修改别人的画作,很快就会变得混乱不堪。今...
- 10分钟搭建自己的Git仓库
-
10分钟搭建自己的Git仓库...
- GIT,如何恢复修改过的文件,回到过去呢?
-
我们知道git系统有三个区域:工作目录、暂存区域和git仓库所以恢复修改过的文件,需要考虑到三种情况。第一种情况,修改了文件,之后就再也没有任何的git操作了。这种情况只需要将当前版本的暂存区的状态还...
- 打造企业级自动化漏洞修复系统结( GitOps + Trivy + Argo CD )
-
在当今DevSecOps流水线中,实现漏洞自动检测+自动修复+自动部署是关键环节。本指南将结合:...
- 如何搭建一个git服务器?
-
GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器。首先你需要一台client和一台server。client可以是w...
- Python进阶-day27: 版本控制与协作
-
1.学习Git基本命令Git是一个强大的分布式版本控制系统,用于跟踪代码更改和团队协作。以下是课程要求的四个基本命令的说明和使用方法:(1)gitclone作用...
- git 基础分支管理基础操作
-
两个仓库git有两个仓库,一个本地仓库,一个远端仓库。大部分开发工作都是在本地仓库完成,程序没有问题后提交到远端仓库。一般是多用户维护一个git仓库...
- Git新手入门
-
欢迎各位准开发者与技术爱好者!如果你曾好奇专业开发者如何协作大型项目而不丢失修改记录(更不用说覆盖他人代码),那么你来对地方了。答案就是Git——已成为开发者工具库中不可或缺的利器。这份详尽指...
- Git推送错误:failed to push some refs to 'git@gitee.com:XXX'
-
项目推送时遇Git推送错误:error:failedtopushsomerefsto‘git@gitee.com:name/project.git’...
- 常用git命令-从远程更新代码合并分支、提交代码等
-
gitconfig设置gitconfiguser.name""...
- 迁移GIT仓库并带有历史提交记录
-
迁移git仓库开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。...
- 一周热门
-
-
C# 13 和 .NET 9 全知道 :13 使用 ASP.NET Core 构建网站 (1)
-
因果推断Matching方式实现代码 因果推断模型
-
git pull命令使用实例 git pull--rebase
-
面试官:git pull是哪两个指令的组合?
-
git fetch 和git pull 的异同 git中fetch和pull的区别
-
git 执行pull错误如何撤销 git pull fail
-
git pull 和git fetch 命令分别有什么作用?二者有什么区别?
-
还可以这样玩?Git基本原理及各种骚操作,涨知识了
-
git pull 之后本地代码被覆盖 解决方案
-
git命令之pull git.pull
-
- 最近发表
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)