AtomGit(GitCode)配置Git
首次使用配置(AtomGit(GitCode) 为例配置 Git)
引言
AtomGit(GitCode)作为国内新兴的代码托管平台,提供了与 GitHub、GitLab 类似的完整功能,包括代码仓库管理、Issue 追踪、CI/CD 集成等,同时在国内网络环境下访问更加流畅稳定。对于国内开发者而言,选择 GitCode 作为代码托管平台,既能享受到现代代码托管服务的便利,又能避免因网络问题带来的困扰。
本文将以 AtomGit(GitCode)为例,详细介绍 Git 的配置、认证方式设置以及使用测试的完整流程。无论你是刚刚接触 Git 和代码托管的初学者,还是希望从其他平台迁移到 GitCode 的经验开发者,本文都将为你提供清晰、实用的指导。
内容结构
我们将从最基础的注册账号开始,逐步引导你完成:
- 用户信息的获取与配置
- SSH 和 HTTPS 两种认证方式的设置
- 完整的配置测试和工作流验证
** 谁适合阅读本教程?**
本教程专为新手用户设计,
假定你已具备基本的电脑操作(如解压文件、运行安装程序,cmd,Power Shell 的使用)知识。
无需任何专业背景。
⏱️ 需要准备什么?
- 一台安装有 Windows 11/10 系统的电脑。
- 稳定的网络连接(用于下载,测试)。
- 因人而异的时间
- 已安装 Git
️ 本文教程环境
设备 AMD_R7_8845H
Git version 2.52.0.windows.1
Windows10 专业版
1.获取用户名与邮箱
GitCode(https://gitcode.com)是一个类似 GitHub 的代码托管平台。注册 GitCode 账号,访问 https://gitcode.com,点击右上角"注册",使用邮箱或手机号注册账号,随意建一个测试项目,也能获取用户名与邮箱。
1.1.用户名


或者任何一个自己项目链接里也有,紧跟在.com 后的 https://gitcode.com/CYXue/gitcode_pocket
1.2.邮箱在个人设置,电子邮件里面

1.3.或者直接在创建的测试项目里查看用户名与邮箱

1.4.在 Git Bash 中设置你的个人信息(提交代码时会显示):
修改的都是引号里面的,修改的都是引号里面的,修改的都是引号里面的,
# 设置用户名(建议与 GitCode 用户名一致,个人设置里账号设置的用户名)
git config --global user.name "你的用户名"# 设置邮箱(用你的邮箱)
git config --global user.email "你的邮箱@example.com"# 可选:让命令行输出带颜色
git config --global color.ui auto# 可选:设置默认分支名为 main(符合现代习惯,安装时已设置)
git config --global init.defaultBranch main# 查看配置是否生效
git config --global --list
测试结果如下

2.配置认证方式(SSH 或 HTTPS)
2.1.配置 SSH
2.1.1 生成 SSH 密钥(推荐,无需每次输入密码)
# 生成新的 SSH 密钥(推荐使用 ed25519 算法)
ssh-keygen -t ed25519 -C "你的邮箱@example.com"# 如果系统不支持 ed25519,使用 RSA
ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com"#二选一即可# 生成过程中,按 Enter 接受使用默认路径保存位置
# 设置密码(可选,推荐设置增加安全性)

2.1.2.查看并复制公钥
# 查看公钥内容(可以手动复制)
cat ~/.ssh/id_ed25519.pub# 复制公钥(Windows Git Bash)
cat ~/.ssh/id_ed25519.pub | clip# 复制公钥(Linux/macOS)
cat ~/.ssh/id_ed25519.pub | pbcopy # macOS
cat ~/.ssh/id_ed25519.pub | xclip # Linux
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOz6mkmNuNmkRKYOYv8dbAJGf2p/OXR5j2Ptfo9nJQwy 1234567890@qq.com,复制是完整的复制,这是举例。
添加 SSH 公钥到 GitCode,登录 GitCode,点击右上角头像 → 设置(Settings),左侧菜单选择 SSH 公钥,点击 添加 SSH 公钥,粘贴公钥内容,标题可自定义(如"My Work Computer"),点击 添加

2.1.3.测试 SSH 连接
# 第一次 SSH 连接 GitCode
ssh -T git@gitcode.com# 你会看到:
The authenticity of host 'gitcode.com (116.205.2.91)' can't be established.
RSA key fingerprint is SHA256:aTlsy+4ARMC7nWyy5eKIqUkotk8yv7Jd+XXoP4EXj1Y.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes# 输入 yes 后:
Warning: Permanently added 'gitcode.com,116.205.2.91' (RSA) to the list of known hosts.
Hi 你的用户名! You've successfully authenticated, but GITCODE does not provide shell access.# 下次连接就不会再问了
ssh -T git@gitcode.com
# 直接显示:Hi 你的用户名! You've successfully authenticated...
remote: Welcome to GitCode, '用户名' 这意味着你已经成功通过 SSH 认证,并且 GitCode 欢迎你。
如下图所示

** WARNING: connection is not using a post-quantum key exchange算法。
** This session may be vulnerable to "store now, decrypt later" attacks。
** The server may need to be upgraded. See https://openssh.com/pq.html
这个警告是关于后量子密钥交换算法的。
目前,很多服务器还没有升级到支持后量子密码学。
这只是一个警告,不影响当前的连接和操作。
你可以忽略这个警告,因为目前SSH连接仍然是安全的,只是未来量子计算机发展后,当前的加密可能被破解。
但是,如果你不进行高度机密的操作,可以暂时忽略。
2.2.HTTPS 方式(需要每次输入密码/令牌)
2.2.1.生成个人访问令牌(代替密码)
登录 GitCode → 设置 → 访问令牌,点击 生成新令牌, 设置令牌描述,选择权限(建议勾选:read_repository, write_repository),点击 生成令牌,立即复制令牌(只会显示一次!),立即复制令牌(只会显示一次!),立即复制令牌(只会显示一次!),立即复制令牌(只会显示一次!),立即复制令牌(只会显示一次!),立即复制令牌(只会显示一次!),
qSBJfP6uxXSxtngxdjWNpQb4,这个访问令牌很重要,记得额外保存,这个访问令牌很重要,记得额外保存,这个访问令牌很重要,记得额外保存,


2.2.2.配置凭证存储
# Git 会记住密码(Windows 凭据管理器)
git config --global credential.helper manager# 或者使用缓存(15分钟)
git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=900'
2.2.3.测试访问令牌
2.2.3.1 第一次克隆时输入凭证
使用 HTTPS 克隆私有仓库时,可以使用令牌作为密码:
git clone https://gitcode.com/用户名/仓库名.git
用户名:你的用户名
密码:你的访问令牌
克隆命令在这里查看

在 Git Bash 输入 git clone https://gitcode.com/CYXue/text.git

在当前目录下可以查看是否有克隆项目名称,text

cd 项目名称,cd text

2.2.3.2.通过 json 测试凭证
#在GitBash里测试访问令牌,根据返回的信息验证
curl -H "PRIVATE-TOKEN: 访问令牌" https://gitcode.com/api/v5/user
#具体示例
curl -H "PRIVATE-TOKEN: qSBJfP6uxXSxtngxdjWNpQb4" https://gitcode.com/api/v5/user
返回你的用户信息 JSON,就说明令牌可行。

3.配置测试
该测试是在测试项目下进行,使用时切记更换为自己的项目名称
3.1.基础配置测试,检测上述配置是否成功
# 快速检查所有关键项目
check_git_all() {echo " Git快速检查 - $(date)"echo "======================"# 1. 用户信息echo "用户: $(git config user.name)"echo "邮箱: $(git config user.email)"# 2. SSH连通性echo -n "SSH: "ssh -o ConnectTimeout=3 -T git@gitcode.com 2>&1 | grep -q "Welcome" && echo "✅" || echo "❌"# 3. HTTPS连通性echo -n "HTTPS: "curl -s -o /dev/null -w "%{http_code}" https://gitcode.com >/dev/null && echo "✅" || echo "❌"# 4. 仓库状态(如果存在)if [ -d ~/text/.git ]; thencd ~/textecho "仓库分支: $(git branch --show-current)"echo -n "远程连接: "git ls-remote origin HEAD >/dev/null 2>&1 && echo "✅" || echo "❌"fi# 5. 网络echo -n "网络: "ping -n 1 gitcode.com >/dev/null 2>&1 && echo "✅" || echo "❌"echo "======================"
}# 执行快速检查
check_git_all
测试结果如下

断网测试

3.2.模拟 Git 正常工作的测试
#!/bin/bash
echo " Git工作流测试"
echo "================"# 定义仓库路径(根据你的实际情况修改)
REPO_DIR="$HOME/text" # 默认使用 ~/text,你可以修改这里
echo "检测仓库目录: $REPO_DIR"# 检查目录是否存在
if [ ! -d "$REPO_DIR" ]; thenecho "❌ 仓库目录不存在: $REPO_DIR"echo "请修改脚本中的 REPO_DIR 变量为你实际的仓库路径"exit 1
fi# 进入仓库目录
cd "$REPO_DIR" || {echo "❌ 无法进入目录: $REPO_DIR"exit 1
}# 检查是否在Git仓库中
if [ ! -d ".git" ]; thenecho "❌ 当前目录不是Git仓库: $(pwd)"echo "请确保你在正确的Git仓库目录中运行此脚本"exit 1
fiecho "✅ 当前在Git仓库目录: $(pwd)"
echo "当前分支: $(git branch --show-current)"# 1. 清理之前的测试分支
echo -e "\n1. 清理之前的测试分支..."
# 只删除本地分支,不删除远程分支
EXISTING_BRANCHES=$(git branch | grep -E "test-branch-|test-" | sed 's/^* //')
if [ -n "$EXISTING_BRANCHES" ]; thenecho "找到以下测试分支:"echo "$EXISTING_BRANCHES"for branch in $EXISTING_BRANCHES; doif [ "$branch" != "$(git branch --show-current)" ]; thengit branch -D "$branch" 2>/dev/null && echo " 删除分支: $branch"fidone
elseecho "没有找到测试分支"
fi# 2. 分支操作测试
echo -e "\n2. 分支操作测试:"
TEST_BRANCH="test-branch-$(date +%Y%m%d%H%M%S)"
echo "创建分支: $TEST_BRANCH"if git branch "$TEST_BRANCH" 2>&1; thenecho "✅ 分支创建成功: $TEST_BRANCH"# 切换到测试分支if git checkout "$TEST_BRANCH" 2>&1; thenecho "✅ 成功切换到分支: $TEST_BRANCH"elseecho "❌ 分支切换失败"git checkout main 2>/dev/nullfi
elseecho "❌ 分支创建失败"echo "错误信息: $(git branch "$TEST_BRANCH" 2>&1)"
fi# 3. 暂存区测试
echo -e "\n3. 暂存区操作测试:"
TEST_FILE="test_workflow_$(date +%s).txt"
echo "创建测试文件: $TEST_FILE"
echo "测试内容 - 创建于: $(date)" > "$TEST_FILE"if git add "$TEST_FILE" 2>&1; thenecho "✅ 添加文件成功"# 检查文件是否在暂存区if git status --porcelain | grep -q "$TEST_FILE"; thenecho "✅ 文件已在暂存区"fi
elseecho "❌ 添加文件失败"echo "错误信息: $(git add "$TEST_FILE" 2>&1)"
fi# 4. 提交测试
echo -e "\n4. 提交操作测试:"
COMMIT_OUTPUT=$(git commit -m "测试提交 - $(date '+%Y-%m-%d %H:%M:%S')" 2>&1)
if echo "$COMMIT_OUTPUT" | grep -q "\[$TEST_BRANCH"; thenecho "✅ 提交成功"echo "提交信息: $(git log -1 --format='%s')"
elseecho "❌ 提交失败"echo "错误信息: $COMMIT_OUTPUT"
fi# 5. 合并测试
echo -e "\n5. 合并测试:"
if git checkout main 2>&1; thenecho "✅ 切换回main分支"if git merge "$TEST_BRANCH" --no-ff -m "合并测试分支 $TEST_BRANCH" 2>&1; thenecho "✅ 合并成功"elseecho "❌ 合并失败"# 如果合并冲突,撤销合并git merge --abort 2>/dev/nullfi
elseecho "❌ 无法切换回main分支"
fi# 6. 清理
echo -e "\n6. 清理测试:"
# 删除测试分支
if git branch -d "$TEST_BRANCH" 2>&1; thenecho "✅ 删除测试分支: $TEST_BRANCH"
elseecho "⚠️ 无法删除分支,可能已自动删除"
fi# 删除测试文件
if [ -f "$TEST_FILE" ]; thenrm "$TEST_FILE"echo "✅ 删除测试文件: $TEST_FILE"
fiecho -e "\n Git工作流测试完成"
echo "当前分支: $(git branch --show-current)"
echo "仓库状态:"
git status --short
