Featured image of post Git 新仓库初始化脚本 📁

Git 新仓库初始化脚本 📁

Git 新仓库初始化脚本 📁 一键自动化创建和初始化 Git 仓库的便捷工具,支持 Gitee

Git 新仓库初始化脚本 📁

Git 仓库初始化

一键自动化创建和初始化 Git 仓库的便捷工具,支持 Gitee、GitHub 和 Gitea 平台


📖 目录导航


✨ 脚本功能概述

本指南提供三个主流 Git 平台的仓库初始化脚本:

  1. Gitee 仓库初始化 - 国内码云平台
  2. GitHub 仓库初始化 - 全球最大代码托管平台
  3. Gitea 仓库初始化 - 自建 Git 服务平台

核心优势

  • ⚡ 一键自动化初始化流程
  • 🔄 支持多个主流 Git 平台
  • 📁 自动创建标准项目结构
  • 🔐 安全的认证和权限管理
  • 🛡️ 内置最佳实践配置

🚀 一、Gitee 新仓库初始化

执行 Gitee 仓库创建脚本

1
bash <(curl -sL gitee.com/meimolihan/script/raw/master/sh/git/gitee_new_godown.sh)

Gitee 初始化演示

功能特点

  • 📝 自动创建 Gitee 新仓库
  • 🔧 初始化本地 Git 配置
  • 🔗 设置远程仓库连接
  • 📁 创建标准的目录结构
  • 📄 添加基础配置文件

输出示例

1
2
3
4
5
6
7
🚀 开始创建 Gitee 新仓库...
📦 仓库名称: my-project
🔧 初始化 Git 仓库...
📁 创建基础文件...
✅ 本地仓库初始化完成
📝 请手动在 Gitee 上创建仓库...
🎉 仓库初始化流程完成!

🌐 二、GitHub 新仓库初始化

执行 GitHub 仓库创建脚本

1
bash <(curl -sL gitee.com/meimolihan/script/raw/master/sh/git/github_new_godown.sh)

GitHub 初始化演示

功能特点

  • 🐙 创建 GitHub 新仓库
  • 🔐 支持 Personal Access Token 认证
  • 🌍 自动设置仓库可见性(Public/Private)
  • 📋 配置仓库描述和主题标签
  • 🛡️ 添加基础的安全配置文件

高级功能

  • 自动创建 ISSUE_TEMPLATE 和 PULL_REQUEST_TEMPLATE
  • 设置分支保护规则
  • 配置 GitHub Actions 工作流
  • 添加 CODEOWNERS 文件

🏠 三、Gitea 新仓库初始化

执行 Gitea 仓库创建脚本

1
bash <(curl -sL gitee.com/meimolihan/script/raw/master/sh/git/gitea_new_godown.sh)

功能特点

  • 🖥️ 支持自建 Gitea 实例
  • 🔧 自定义仓库配置选项
  • 👥 设置协作者和团队权限
  • 📊 配置仓库统计和监控
  • 🔄 支持多种认证方式

配置选项

1
2
3
4
5
6
7
8
# 设置 Gitea 实例地址
export GITEA_URL="https://git.example.com"

# 设置认证令牌
export GITEA_TOKEN="your-access-token"

# 设置组织/用户
export GITEA_OWNER="username-or-org"

🛠️ 四、脚本源码参考

Gitee 仓库初始化脚本 (gitee_new_godown.sh)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'

echo -e "${CYAN}🚀 开始创建 Gitee 新仓库...${NC}"

# 获取当前目录名作为仓库名
REPO_NAME=$(basename "$PWD")
echo -e "📦 仓库名称: ${GREEN}$REPO_NAME${NC}"

# 检查是否已存在 Git 仓库
if [ -d .git ]; then
    echo -e "${YELLOW}⚠️  当前目录已经是 Git 仓库${NC}"
    exit 1
fi

# 初始化 Git 仓库
echo -e "${BLUE}🔧 初始化 Git 仓库...${NC}"
git init
git branch -M main

# 创建基础文件
echo -e "${BLUE}📁 创建基础文件...${NC}"
cat > README.md << EOF
# $REPO_NAME

项目描述写在这里...

## 功能特性

- 特性 1
- 特性 2 
- 特性 3

## 安装使用

\`\`\`bash
git clone <仓库地址>
cd $REPO_NAME
\`\`\`

## 许可证

MIT License
EOF

# 创建 .gitignore
cat > .gitignore << EOF
# 依赖目录
node_modules/
vendor/

# 日志文件
*.log
logs/

# 环境配置
.env
.env.local

# 系统文件
.DS_Store
Thumbs.db

# 编辑器配置
.vscode/
.idea/
EOF

# 添加和提交初始文件
git add .
git commit -m "初始提交: 项目初始化"

echo -e "${GREEN}✅ 本地仓库初始化完成${NC}"

# 提示用户手动创建远程仓库
echo -e "${YELLOW}📝 请手动在 Gitee 上创建仓库:${NC}"
echo -e "   1. 访问: https://gitee.com/projects/new"
echo -e "   2. 仓库名称: $REPO_NAME"
echo -e "   3. 创建完成后执行以下命令:"
echo -e ""
echo -e "git remote add origin git@gitee.com:你的用户名/$REPO_NAME.git"
echo -e "git push -u origin main"
echo -e ""
echo -e "${GREEN}🎉 仓库初始化流程完成!${NC}"

⚙️ 五、配置和准备工作

1. 安装必要的依赖

1
2
3
4
5
6
7
8
9
# 确保已安装 Git
sudo apt install git -y

# 配置 Git 用户信息
git config --global user.name "你的姓名"
git config --global user.email "你的邮箱"

# 生成 SSH 密钥(如果还没有)
ssh-keygen -t ed25519 -C "你的邮箱"

2. 配置平台访问令牌

Gitee 访问令牌

  1. 访问 https://gitee.com/profile/personal_access_tokens
  2. 创建新令牌,勾选 repo 权限
  3. 保存令牌备用

GitHub 访问令牌

  1. 访问 https://github.com/settings/tokens
  2. 创建新令牌,勾选 repo 权限
  3. 保存令牌备用

3. 环境变量配置

1
2
3
4
5
6
7
# 添加到 ~/.bashrc 或 ~/.zshrc
export GITEE_TOKEN="你的Gitee令牌"
export GITHUB_TOKEN="你的GitHub令牌"
export GITEA_TOKEN="你的Gitea令牌"

# 重新加载配置
source ~/.bashrc

🔧 六、高级配置选项

1. 自定义仓库配置

1
2
3
4
5
6
7
8
# 设置仓库描述
REPO_DESCRIPTION="我的项目描述"

# 设置仓库可见性
REPO_VISIBILITY="public"  # 或 "private"

# 设置许可证
REPO_LICENSE="MIT"

2. 添加预配置模板

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 创建基础项目结构
mkdir -p src tests docs

# 添加语言特定配置
# 对于 Node.js 项目
if [ ! -f package.json ]; then
    npm init -y
fi

# 对于 Python 项目
if [ ! -f requirements.txt ]; then
    touch requirements.txt
fi

3. 自动化远程仓库创建

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 使用 Gitee API 自动创建仓库(需要安装 curl 和 jq)
GITEE_TOKEN="你的Gitee令牌"
REPO_NAME=$(basename "$PWD")

# 创建远程仓库
response=$(curl -X POST -H "Content-Type: application/json" \
    -H "Authorization: token $GITEE_TOKEN" \
    -d "{\"name\":\"$REPO_NAME\",\"description\":\"$REPO_DESCRIPTION\",\"private\":false}" \
    https://gitee.com/api/v5/user/repos)

# 提取 SSH URL
SSH_URL=$(echo $response | jq -r '.ssh_url')
git remote add origin $SSH_URL

4. 多平台同步配置

1
2
3
4
5
6
7
8
9
# 添加多个远程仓库
git remote add gitee git@gitee.com:username/repo.git
git remote add github git@github.com:username/repo.git
git remote add gitea git@gitea.example.com:username/repo.git

# 推送到所有远程仓库
git push --all gitee
git push --all github
git push --all gitea

💡 七、使用技巧

1. 批量初始化多个仓库

1
2
3
# 创建项目目录并初始化
mkdir my-project && cd my-project
bash <(curl -sL gitee.com/meimolihan/script/raw/master/sh/git/gitee_new_godown.sh)

2. 集成到自动化工作流

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash
# 自动化项目创建脚本
set -e

PROJECT_NAME="$1"
mkdir "$PROJECT_NAME" && cd "$PROJECT_NAME"

# 执行仓库初始化
bash <(curl -sL gitee.com/meimolihan/script/raw/master/sh/git/gitee_new_godown.sh)

echo "项目 $PROJECT_NAME 创建完成!"

3. 自定义初始化模板

1
2
3
4
5
6
7
8
# 创建自定义模板目录
mkdir -p ~/.git-templates

# 复制脚本到模板目录
cp gitee_new_godown.sh ~/.git-templates/

# 设置 Git 模板路径
git config --global init.templatedir '~/.git-templates'

4. IDE 集成

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# VS Code 任务配置
# 在 .vscode/tasks.json 中添加
{
  "label": "Initialize Git Repository",
  "type": "shell",
  "command": "bash",
  "args": [
    "-c",
    "bash <(curl -sL gitee.com/meimolihan/script/raw/master/sh/git/gitee_new_godown.sh)"
  ],
  "presentation": {
    "echo": true,
    "reveal": "always",
    "focus": false,
    "panel": "shared"
  }
}

🚨 八、注意事项

1. 权限和认证

  • 确保有对应平台的账号和创建仓库的权限
  • 配置正确的 SSH 密钥或访问令牌
  • 注意令牌的权限范围

2. 网络连接

  • 确保网络连接稳定,特别是访问国外平台时
  • 考虑使用代理或镜像加速访问

3. 仓库命名规范

  • 遵循平台的仓库命名规则
  • 避免使用特殊字符和保留名称
  • 建议使用小写字母和连字符

4. 敏感信息保护

  • 不要在代码中包含敏感信息
  • 使用 .gitignore 忽略配置文件
  • 考虑使用环境变量或密钥管理工具

5. 许可证选择

1
2
3
4
5
6
7
8
# 常用开源许可证
- MIT: 宽松许可证,适合大多数项目
- Apache-2.0: 企业友好,专利保护
- GPL-3.0: 强 copyleft,要求开源衍生作品
- BSD-3-Clause: 类似 MIT,附加条款

# 添加许可证文件
curl -sL https://api.github.com/licenses/mit | jq -r '.body' > LICENSE

🔄 九、故障排除

❓ 脚本执行权限问题

1
2
3
4
5
# 添加执行权限
chmod +x gitee_new_godown.sh

# 或者直接使用 bash 执行
bash script.sh

❓ 网络连接问题

1
2
3
4
5
6
# 使用国内镜像
bash <(curl -sL gitee.com/meimolihan/script/raw/master/sh/git/gitee_new_godown.sh)

# 或者先下载脚本再执行
curl -O https://gitee.com/meimolihan/script/raw/master/sh/git/gitee_new_godown.sh
bash gitee_new_godown.sh

❓ API 速率限制

  • 避免频繁调用创建接口
  • 使用缓存或等待一段时间后重试
  • 考虑使用官方 CLI 工具替代

❓ 认证失败

1
2
3
4
5
# 检查 SSH 密钥配置
ssh -T git@gitee.com

# 重新配置认证信息
git config --global credential.helper store

❓ 仓库已存在错误

1
2
3
4
5
6
7
# 检查远程仓库是否已存在
curl -s -H "Authorization: token $GITEE_TOKEN" \
  "https://gitee.com/api/v5/repos/username/$REPO_NAME" | jq .

# 如果存在,可以选择删除或重命名
curl -X DELETE -H "Authorization: token $GITEE_TOKEN" \
  "https://gitee.com/api/v5/repos/username/$REPO_NAME"

📊 十、各平台特性对比

特性 Gitee GitHub Gitea
访问速度 ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐⭐
中文支持 ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐
免费私有库
CI/CD ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐
社区生态 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐
自部署
API 限制 宽松 严格 可配置
企业特性 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐

选择建议:

  • 国内个人项目:推荐 Gitee,访问速度快,中文支持好
  • 开源项目:推荐 GitHub,全球最大的开源社区
  • 企业自建:推荐 Gitea,可完全控制,支持私有化部署
  • 多平台同步:可以同时在多个平台托管,提高可用性

🎯 提示:根据您的需求选择合适的平台。国内用户推荐 Gitee 获得更好的访问速度,开源项目推荐 GitHub 获得更广泛的曝光,需要自建服务的推荐 Gitea。

希望这些 Git 仓库初始化脚本能帮助您快速开始新项目!如有任何问题或建议,欢迎反馈和改进。🚀