eeff292
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>GitDataAI — Git 仓库托管、评审与团队协作</title>
<meta
name="description"
content="GitDataAI 提供 Git 仓库托管、合并请求评审、Issue 看板与团队聊天,并用一套账户打通所有空间与应用的访问权限。"
/>
<meta name="robots" content="index, follow" />
<link rel="canonical" href="https://gitdata.ai/" />
<link rel="icon" type="image/png" href="/media/gitdataai-red-panda.png" />
<meta name="referrer" content="no-referrer" />
<meta name="color-scheme" content="light dark" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="GitDataAI" />
<meta property="og:url" content="https://gitdata.ai/" />
<meta property="og:title" content="GitDataAI — Git 仓库托管、评审与团队协作" />
<meta
property="og:description"
content="GitDataAI 提供 Git 仓库托管、合并请求评审、Issue 看板与团队聊天,并用一套账户打通所有空间与应用的访问权限。"
/>
<meta property="og:image" content="https://gitdata.ai/media/gitdataai-red-panda.png" />
<meta property="og:image:width" content="400" />
<meta property="og:image:height" content="400" />
<meta property="og:locale" content="zh_CN" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="GitDataAI — Git 仓库托管、评审与团队协作" />
<meta
name="twitter:description"
content="GitDataAI 提供 Git 仓库托管、合并请求评审、Issue 看板与团队聊天,并用一套账户打通所有空间与应用的访问权限。"
/>
<meta name="twitter:image" content="https://gitdata.ai/media/gitdataai-red-panda.png" />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://gitdata.ai/#organization",
"name": "GitDataAI",
"url": "https://gitdata.ai/",
"logo": "https://gitdata.ai/media/gitdataai-red-panda.png"
},
{
"@type": "WebSite",
"@id": "https://gitdata.ai/#website",
"name": "GitDataAI",
"url": "https://gitdata.ai/",
"description": "Git 仓库托管、合并请求评审、Issue 看板与团队聊天,统一账户打通所有空间与应用。",
"inLanguage": "zh-CN",
"publisher": { "@id": "https://gitdata.ai/#organization" }
}
]
}
</script>
<script>
try {
const t = localStorage.getItem('auth-theme')
document.documentElement.dataset.theme =
t === 'dark' || (t !== 'light' && matchMedia('(prefers-color-scheme: dark)').matches) ? 'dark' : 'light'
} catch {
document.documentElement.dataset.theme = matchMedia('(prefers-color-scheme: dark)').matches
? 'dark'
: 'light'
}
</script>
</head>
<body>
<div id="app"></div>
<script type="module" src="/index/src/main.tsx"></script>
</body>
</html>