自研高性能 Git 仓库管理平台,支持标准 Git Smart HTTP 克隆推送、Web 在线编写提交代码、分支合并、工单追踪与全站后台管理。
{{ repo.description || '暂无仓库描述' }}
{{ state.repoData.owner_name }} / {{ state.repoData.name }} ({{ state.repoData.display_name }})
{{ state.repoData.is_private ? '🔒 私有仓库' : '🌐 公开仓库' }} {{ formatSize(state.repoData.size_kb) }}{{ state.repoData.description || '暂无描述' }}
你可以直接在网页上一键创建文件完成首次提交,或者通过下方 Git 命令行推送代码:
方式一:在本地新建仓库并推送到 {{ state.siteInfo.domain }} ({{ state.cloneProtocol.toUpperCase() }})
git init
git checkout -b {{ state.repoMeta.default_branch }}
echo "# {{ state.repoData.name }}" >> README.md
git add README.md
git commit -m "first commit"
git remote add origin {{ state.cloneProtocol==='ssh' ? state.repoMeta.clone_url_ssh : state.repoMeta.clone_url_http }}
git push -u origin {{ state.repoMeta.default_branch }}
方式二:推送本地已有 Git 仓库
git remote add origin {{ state.cloneProtocol==='ssh' ? state.repoMeta.clone_url_ssh : state.repoMeta.clone_url_http }}
git push -u origin --all
git push -u origin --tags
| 名称 | 类型 | Object Hash | 大小 |
|---|---|---|---|
| 📁 .. (返回上级目录) | |||
| {{ entry.type === 'tree' ? '📁' : '📄' }} {{ entry.name }} | {{ entry.type === 'tree' ? '目录' : '文件' }} | {{ entry.hash.slice(0, 8) }} | {{ entry.type === 'tree' ? '-' : entry.size + ' B' }} |
{{ state.readmeContent }}
| 提交信息 (Commit Message) | 作者 | Commit SHA | 提交时间 | 操作 |
|---|---|---|---|---|
| 暂无提交记录 | ||||
| {{ c.message }} | {{ c.author_name }} | {{ c.short_hash }} | {{ formatDate(c.date) }} | |
评论记录 ({{ state.issueComments.length }})
| 编号 | 标题 | 标签 | 状态 | 创建人 | 时间 |
|---|---|---|---|---|---|
| 暂无工单记录 | |||||
| #{{ iss.number }} | {{ iss.title }} | {{ iss.labels }} | {{ iss.state }} | {{ iss.author_name }} | {{ formatDate(iss.created_at) }} |
新地址预览:git@{{ state.siteInfo.domain }}:{{ state.repoSettingsForm.new_owner }}/{{ state.repoSettingsForm.name }}.git
⚠️ 修改后旧地址立即失效,本地仓库需执行:git remote set-url origin 新地址
| 用户名 | 权限级别 | 添加时间 | 操作 |
|---|---|---|---|
| 暂无外部协作者 | |||
| {{ c.username }} | {{ c.permission }} | {{ formatDate(c.created_at) }} | |
将此仓库(含全部代码、分支与工单)过户迁移给平台上的另一个用户账号。
删除后,磁盘上的 Git 裸仓库及所有提交历史、工单将不可恢复。
绑定本机 ~/.ssh/id_ed25519.pub 或 ~/.ssh/id_rsa.pub 公钥后,即可直接使用 git@{{ state.siteInfo.domain }}:用户名/仓库名.git 通过 SSH 私钥克隆与推送代码。
| 标题 / 算法 | SHA256 指纹 | 最近使用 | 添加时间 | 操作 |
|---|---|---|---|---|
| 暂未绑定 SSH 公钥 | ||||
| {{ k.title }} {{ k.key_type }} | {{ k.fingerprint }} | {{ k.last_used_at ? formatDate(k.last_used_at) : '从未使用' }} | {{ formatDate(k.created_at) }} | |
访问令牌(glw_...)可用于命令行 git clone / git push HTTP Basic 认证(作为密码输入),也可作为 API Bearer Token 使用。
{{ state.createdPlainToken }}
| 名称 | 令牌前缀 | 最近使用 | 创建时间 | 操作 |
|---|---|---|---|---|
| 暂未生成个人访问令牌 | ||||
| {{ t.name }} | {{ t.token_prefix }} | {{ t.last_used_at ? formatDate(t.last_used_at) : '从未使用' }} | {{ formatDate(t.created_at) }} | |
⚡ git.luwei.work 超级管理后台
Super Administrator| 时间 | 操作人 | 动作类型 | 目标对象 | 详情说明 | IP 地址 |
|---|---|---|---|---|---|
| {{ formatDate(log.created_at) }} | {{ log.actor_name }} | {{ log.action }} | {{ log.target }} | {{ log.detail }} | {{ log.ip }} |
| ID | 用户名 | 邮箱 | 角色 | 状态 | 仓库数 | 注册时间 | 管理操作 |
|---|---|---|---|---|---|---|---|
| #{{ u.id }} | {{ u.username }} | {{ u.email }} | {{ u.is_admin ? '管理员' : '普通用户' }} | {{ u.is_active ? '正常' : '已封禁' }} | {{ u.repo_count }} | {{ formatDate(u.created_at) }} |
|
| ID | 所有者 / 仓库名 | 可见性 | 默认分支 | 占用空间 | 最后更新 | 管理操作 |
|---|---|---|---|---|---|---|
| #{{ r.id }} |
{{ r.owner_name }} / {{ r.name }}
{{ r.description }}
|
{{ r.is_private ? '私有' : '公开' }} | {{ r.default_branch }} | {{ formatSize(r.size_kb) }} | {{ formatDate(r.updated_at) }} |
|
.tar.gz)
一键将 /home/git/data(包含 SQLite 数据库 git_luwei.db 所有用户/SSH公钥/配置/工单 + repositories/ 下所有 Git 裸仓库)完整打包下载到本地,可用于异地灾备或整站迁移至新服务器。
.tar.gz) 恢复 / 迁入仓库数据
上传从旧服务器导出的 .tar.gz 迁移备份包,系统将自动解压所有裸仓库至 /home/git/data/repositories 并自动扫描注册入库。
/home/git/data/repositories 目录未纳管裸仓库
如果你直接通过 scp / rsync 将外部 *.git 裸仓库拷贝到了服务器 /home/git/data/repositories/<用户名>/ 下,点击右侧按钮即可一键自动识别并注册到平台数据库。
支持将当前服务器其他路径下的裸仓库或工作区仓库克隆迁入到平台指定用户名下:
支持随时在「Let's Encrypt 权威公开证书」与「内置私有自签名证书」之间无缝热切换(自动更新 Nginx 并平滑重载)。
系统将使用内置的 Go 密码学引擎(RSA + X.509 标准)为您的域名自动生成根 CA 与全功能自签服务端证书,并附带 SAN 扩展。支持局域网、内网穿透及隔离网络环境免外部域名验证使用。
git config --global http.sslVerify false 暂时跳过根证书校验,或双击下载的 .crt 证书文件安装导入至本机的「受信任的根证书颁发机构」实现完美绿锁。
| ID | 时间 | 操作者 | 事件类型 | 目标对象 | 详细描述 | 来源 IP |
|---|---|---|---|---|---|---|
| #{{ a.id }} | {{ formatDate(a.created_at) }} | {{ a.actor_name }} | {{ a.action }} | {{ a.target }} | {{ a.detail }} | {{ a.ip }} |
📊 团队与个人工作情况看板
全方位统计展示全员及每个人的代码提交量、增删行数、每日活跃趋势、工作时段分布与提交明细。
| 排名 | 成员账号 / 邮箱 | 提交次数 | 新增代码行 | 删除代码行 | 改动文件数 | 活跃天数 | 参与仓库 | 最新提交动态 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| #{{ idx + 1 }} |
{{ m.username.slice(0, 1) }}
|
{{ m.commits }} 次 | +{{ m.additions }} | -{{ m.deletions }} | {{ m.files_changed }} | {{ m.active_days }} 天 | - |
{{ formatDate(m.last_active_at) }} · {{ m.last_commit_repo }}
近期无提交
|
| 提交时间 | 提交人 | 所属仓库 | 提交内容 (Commit Message) | Commit SHA | 改动文件 | 代码增删量 | 代码审查 |
|---|---|---|---|---|---|---|---|
| 当前筛选条件下暂无代码提交记录 | |||||||
| {{ formatDate(cm.date) }} |
{{ cm.username.slice(0, 1) }}
{{ cm.username }}
|
📦 {{ cm.repo_full_name }} | {{ cm.message }} | {{ cm.short_hash }} | {{ cm.files_changed }} 个文件 | +{{ cm.additions }} / -{{ cm.deletions }} | |