跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashNode.js大前端

码云(Gitee)代码推送全流程与实操指南

在国产化开发场景下使用码云(Gitee)进行代码推送的全流程。内容涵盖 Git 环境配置(适配 KylinOS)、SSH 密钥生成与验证、本地新项目及已有仓库的推送操作、分支管理与冲突解决策略,以及通过 Shell 脚本实现自动化推送的优化方案。旨在帮助开发者建立标准化的版本管理规范,提升协作效率并规避常见技术坑点。

暗影行者发布于 2026/3/22更新于 2026/8/188.3K 浏览

一、学习背景与目标

在国产化开发协作场景中,码云(Gitee)作为基于 Git 的本土代码托管平台,是开发者实现代码版本管理、跨团队协作的核心工具。本次学习聚焦'工作端代码推送到码云端'全流程,核心目标不仅是掌握基础推送操作,更要实现:① 标准化配置 Git 环境,适配 KylinOS 等国产系统;② 精准处理分支管理与代码冲突;③ 优化推送流程,提升开发效率,最终形成可复用的代码管理规范。

二、代码推送核心步骤

1. 前期准备:环境深度配置

(1) Git 安装与验证(适配 KylinOS)
# 检查是否已安装 Git
git --version
# 未安装则执行安装(KylinOS 通过 yum 源)
yum install git -y
# 验证安装结果,显示版本号如 git version 2.31.1 即成功
git --version

[图 1:KylinOS 终端安装 Git 成功截图(标注版本号、安装完成提示)]

(2) Git 全局信息配置(多场景适配)
# 配置用户名(与 Gitee 账号一致)
git config --global user.name "Gitee 用户名"
# 配置绑定邮箱(Gitee 账号验证邮箱)
git config --global user.email "[email protected]"
# 可选:配置默认编辑器(解决提交备注时 vim 闪退问题)
git config --global core.editor "vim"
# 查看完整配置,确认信息无误
git config --list

关键说明:--global参数表示全局生效,若需为单个项目配置不同信息,进入项目目录后去掉该参数执行即可。

(3) SSH 密钥生成与配置(免密推送核心)
# 生成 RSA 密钥(-t 指定加密类型,-C 备注邮箱)
ssh-keygen -t rsa -C "[email protected]"
# 执行后连续按 3 次回车:默认路径(~/.ssh/)、无密码、确认无密码
# 查看公钥内容(核心,需复制完整字符串)
cat ~/.ssh/id_rsa.pub

Gitee 端配置步骤:

  1. 登录 Gitee → 点击右上角头像 → 选择'设置';
  2. 左侧菜单栏点击'SSH 公钥' → 标题自定义(如'KylinOS 工作机');
  3. 粘贴公钥内容(确保无空格、无换行) → 点击'确定',输入 Gitee 密码验证。

[图 2:Gitee 添加 SSH 公钥界面截图(标注标题输入框、公钥粘贴区、确认按钮)]

验证 SSH 连接:

ssh -T [email protected]
# 成功提示:Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.

失败排查:若提示'Permission denied',检查:① 公钥复制是否完整;② Gitee 账号是否绑定该邮箱;③ 本地.ssh目录权限(需为 700,执行chmod 700 ~/.ssh)。

2. 核心操作:代码推送(分场景细化)

场景 1:本地新项目首次推送至 Gitee
# 1. 进入本地代码目录(示例路径)
cd /home/dev/project/my-web-project
# 2. 初始化本地 Git 仓库(生成.git 隐藏目录)
git init
# 3. 创建.gitignore 文件(过滤无需推送的文件/目录)
cat > .gitignore << EOF
# 前端项目示例
node_modules/
# 依赖包目录
dist/
# 打包后目录
*.log
# 日志文件
.idea/
# IDE 配置文件
# 后端项目可追加
target/
# Maven 打包目录
*.jar
# 编译后的 jar 包
EOF

[图 3:.gitignore 文件配置截图(标注关键过滤项)]

# 4. 添加文件到暂存区(.表示所有文件,也可指定单个文件如 git add src/main.js)
git add .
# 5. 提交到本地仓库(备注必须清晰,格式:类型 (模块):描述,如 feat(login):新增验证码功能)
git commit -m "init(project):初始化 web 项目,包含登录/首页模块"
# 6. 在 Gitee 创建空白仓库(步骤:首页→新建仓库→填写名称/描述→勾选'私有'→不勾选'初始化 README'→创建)
# 7. 关联远程仓库(替换为自己的仓库 SSH 地址)
git remote add origin [email protected]:用户名/仓库名.git
# 8. 首次推送(-u 绑定本地 main 分支与远程 main 分支,后续可简化命令)
git push -u origin main

[图 4:首次推送成功终端截图(标注'Counting objects''Writing objects''To [email protected]'等成功提示)]

场景 2:本地已有仓库关联并推送至 Gitee
# 进入已有仓库目录
cd /home/dev/old-project
# 查看现有远程仓库(避免重复关联)
git remote -v
# 若已有 origin,先删除:git remote remove origin
# 关联新的 Gitee 仓库
git remote add origin [email protected]:用户名/仓库名.git
# 推送(若本地分支非 main,替换为实际分支名如 master)
git push -u origin main

三、进阶操作:分支管理与冲突解决

1. 标准化分支管理(企业级规范)

# 1. 查看所有分支(*表示当前分支)
git branch -a
# 2. 创建功能分支(命名规范:类型/功能名,如 feature/login、bugfix/order)
git checkout -b feature/login main
# 3. 在功能分支开发并提交代码
git add .
git commit -m "feat(login):添加短信登录功能"
# 4. 推送功能分支到远程
git push origin feature/login
# 5. 功能开发完成,切换回主分支
git checkout main
# 6. 拉取远程主分支最新代码(避免冲突)
git pull origin main
# 7. 合并功能分支到主分支
git merge feature/login
# 8. 推送合并后的主分支
git push origin main
# 9. 可选:删除本地/远程功能分支
git branch -d feature/login # 本地删除
git push origin --delete feature/login # 远程删除

[图 5:分支管理流程示意图(标注'创建→开发→推送→合并→删除'全流程)]

2. 代码冲突解决(实操案例)

冲突场景:多人修改同一文件的同一行代码,推送时提示'error: failed to push some refs to...'。

# 1. 先拉取远程最新代码
git pull origin main
# 2. 终端提示冲突文件(如 src/login.vue),打开文件查看冲突标记:
# <<<<<<< HEAD
# 本地修改的代码
# =======
# 远程修改的代码
# >>>>>>> 提交 ID
# 3. 手动编辑文件,保留正确代码,删除冲突标记
# 4. 重新提交并推送
git add src/login.vue
git commit -m "fix(conflict):解决登录页短信验证码冲突"
git push origin main

关键技巧:冲突解决后,建议先本地测试代码运行,再推送至远程,避免引入新问题。

四、实操技巧与避坑指南

1. 高效操作技巧

  • 提交记录回溯:
git log # 查看所有提交记录(含 ID、作者、时间、备注)
git log --pretty=oneline # 简化显示提交记录
git show 提交 ID # 查看指定提交的详细修改内容
  • 暂存未完成代码:
# 临时切换分支时,暂存当前未提交的代码
git stash
# 切换回分支后,恢复暂存的代码
git stash pop
  • 远程仓库地址修改:
# 查看当前远程地址
git remote -v
# 修改远程地址(如 SSH 改 HTTPS,或仓库迁移)
git remote set-url origin [email protected]:新用户名/新仓库名.git

2. 典型坑点及解决方案

坑点现象原因分析解决方案
推送时提示'non-fast-forward'本地分支落后于远程分支先执行 git pull origin main 拉取最新代码,解决冲突后再推送
.gitignore 配置后仍推送过滤文件过滤文件已被加入暂存区执行 git rm --cached 文件名 移除暂存区,再重新提交
HTTPS 方式推送每次需输密码未配置凭证缓存执行 git config --global credential.helper store,首次输入密码后永久保存
推送大文件提示'超出限制'Gitee 单文件默认限制 100MB使用 Git LFS(大文件存储):git lfs install, git lfs track "*.zip", git add .gitattributes 大文件.zip, git commit -m "add: 项目安装包", git push origin main

五、自动化优化:脚本简化推送流程

为提升效率,编写 Shell 脚本实现'一键添加 - 提交 - 推送',适配 KylinOS 系统:

# 创建脚本文件:push_code.sh
cat > push_code.sh << 'EOF'
#!/bin/bash
# 一键推送代码到 Gitee 脚本
read -p "请输入提交备注:" msg
# 添加所有文件到暂存区
git add .
# 提交代码
git commit -m "$msg"
# 拉取远程最新代码(避免冲突)
git pull origin main
# 推送代码
git push origin main
echo "代码推送完成!"
EOF

# 赋予执行权限
chmod +x push_code.sh

# 执行脚本
./push_code.sh

[图 6:脚本执行截图(标注输入备注、拉取/推送成功提示)]

使用说明:将脚本放在项目根目录,每次推送只需执行 ./push_code.sh,输入备注即可自动完成流程,减少重复命令输入。

六、学习总结与思维提升

通过本次精细化学习,不仅掌握了 Gitee 代码推送的全流程,更理解了 Git'分布式版本控制'的核心设计思想——每个本地仓库都是完整的版本库,无需依赖中央服务器即可完成提交,推送仅为'同步本地与远程'的补充操作。

在实操层面,适配 KylinOS 等国产系统的过程中,总结出'先配置、再验证、后操作'的规范:SSH 密钥配置、.gitignore 过滤、分支命名规范等前置步骤,看似繁琐却能大幅降低后续推送的问题率。而代码冲突解决的过程,也意识到团队协作中'及时沟通、分模块开发'的重要性——合理拆分功能分支,可从源头减少冲突。

从效率优化角度,Shell 脚本的应用体会到'自动化替代重复操作'的价值,这也是编程思维的核心:将固定流程抽象为可复用的代码,释放人力成本。后续计划进一步学习 Git 进阶功能(如标签管理、变基操作、多人协作代码评审),并将脚本扩展为支持多分支、自动检测冲突的版本,适配更复杂的企业级开发场景。

此外,作为国产化工具的使用者,深刻感受到 Gitee 在适配国产操作系统、满足本土开发需求上的优势,这也更加重视'国产化工具 + 标准化流程'的结合,为后续参与国产化项目开发打下坚实基础。

目录

  1. 一、学习背景与目标
  2. 二、代码推送核心步骤
  3. 1. 前期准备:环境深度配置
  4. (1) Git 安装与验证(适配 KylinOS)
  5. 检查是否已安装 Git
  6. 未安装则执行安装(KylinOS 通过 yum 源)
  7. 验证安装结果,显示版本号如 git version 2.31.1 即成功
  8. (2) Git 全局信息配置(多场景适配)
  9. 配置用户名(与 Gitee 账号一致)
  10. 配置绑定邮箱(Gitee 账号验证邮箱)
  11. 可选:配置默认编辑器(解决提交备注时 vim 闪退问题)
  12. 查看完整配置,确认信息无误
  13. (3) SSH 密钥生成与配置(免密推送核心)
  14. 生成 RSA 密钥(-t 指定加密类型,-C 备注邮箱)
  15. 执行后连续按 3 次回车:默认路径(~/.ssh/)、无密码、确认无密码
  16. 查看公钥内容(核心,需复制完整字符串)
  17. 成功提示:Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.
  18. 2. 核心操作:代码推送(分场景细化)
  19. 场景 1:本地新项目首次推送至 Gitee
  20. 1. 进入本地代码目录(示例路径)
  21. 2. 初始化本地 Git 仓库(生成.git 隐藏目录)
  22. 3. 创建.gitignore 文件(过滤无需推送的文件/目录)
  23. 前端项目示例
  24. 依赖包目录
  25. 打包后目录
  26. 日志文件
  27. IDE 配置文件
  28. 后端项目可追加
  29. Maven 打包目录
  30. 编译后的 jar 包
  31. 4. 添加文件到暂存区(.表示所有文件,也可指定单个文件如 git add src/main.js)
  32. 5. 提交到本地仓库(备注必须清晰,格式:类型 (模块):描述,如 feat(login):新增验证码功能)
  33. 6. 在 Gitee 创建空白仓库(步骤:首页→新建仓库→填写名称/描述→勾选“私有”→不勾选“初始化 README”→创建)
  34. 7. 关联远程仓库(替换为自己的仓库 SSH 地址)
  35. 8. 首次推送(-u 绑定本地 main 分支与远程 main 分支,后续可简化命令)
  36. 场景 2:本地已有仓库关联并推送至 Gitee
  37. 进入已有仓库目录
  38. 查看现有远程仓库(避免重复关联)
  39. 若已有 origin,先删除:git remote remove origin
  40. 关联新的 Gitee 仓库
  41. 推送(若本地分支非 main,替换为实际分支名如 master)
  42. 三、进阶操作:分支管理与冲突解决
  43. 1. 标准化分支管理(企业级规范)
  44. 1. 查看所有分支(*表示当前分支)
  45. 2. 创建功能分支(命名规范:类型/功能名,如 feature/login、bugfix/order)
  46. 3. 在功能分支开发并提交代码
  47. 4. 推送功能分支到远程
  48. 5. 功能开发完成,切换回主分支
  49. 6. 拉取远程主分支最新代码(避免冲突)
  50. 7. 合并功能分支到主分支
  51. 8. 推送合并后的主分支
  52. 9. 可选:删除本地/远程功能分支
  53. 2. 代码冲突解决(实操案例)
  54. 1. 先拉取远程最新代码
  55. 2. 终端提示冲突文件(如 src/login.vue),打开文件查看冲突标记:
  56. <<<<<<< HEAD
  57. 本地修改的代码
  58. =======
  59. 远程修改的代码
  60. >>>>>>> 提交 ID
  61. 3. 手动编辑文件,保留正确代码,删除冲突标记
  62. 4. 重新提交并推送
  63. 四、实操技巧与避坑指南
  64. 1. 高效操作技巧
  65. 临时切换分支时,暂存当前未提交的代码
  66. 切换回分支后,恢复暂存的代码
  67. 查看当前远程地址
  68. 修改远程地址(如 SSH 改 HTTPS,或仓库迁移)
  69. 2. 典型坑点及解决方案
  70. 五、自动化优化:脚本简化推送流程
  71. 创建脚本文件:push_code.sh
  72. 一键推送代码到 Gitee 脚本
  73. 添加所有文件到暂存区
  74. 提交代码
  75. 拉取远程最新代码(避免冲突)
  76. 推送代码
  77. 赋予执行权限
  78. 执行脚本
  79. 六、学习总结与思维提升
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 大模型落地路线图研究报告(2024 年)
  • AI 新趋势:智能体(Agent)与产品经理的机遇
  • ChatGPT 结构化 Prompt 的高级应用技巧
  • LazyLLM 框架实战:构建代码专家智能体
  • Stable Diffusion WebUI 落幕:AI 绘画框架的迭代与思考
  • 云原生算力调度:基于 Kubernetes 的智能资源分配
  • GLM-4.6V-Flash-WEB 实现高效结构化图像信息提取
  • 《Agent Runtime 工程化》Agent 生产事故 #001:Retry 为什么会导致重复下单?
  • 国内开发者的 Claude Code 替代方案:OpenCode + GitHub Copilot
  • 用 Leaflet 和百度天气接口展示湖南省空气质量
  • Claude Code 高级编程技巧实战项目详解
  • 利用 Termux、AstrBot 与 NapCat 在安卓手机部署 QQ 机器人
  • 深入理解 Web Worker:Web 前端多线程实战
  • Stable Diffusion 系列演进、技术特点与应用影响
  • DeepSeek-R1-Distill-Llama-8B 数学解题应用实践
  • C++ 深度优先搜索 (DFS) 回溯算法
  • 位运算算法实战:判断字符唯一、丢失数字及两数之和等 5 题解析
  • Java 面试高频场景题:Full GC、秒杀、幂等性与高可用设计
  • 2G 内存云服务器部署 Spring Boot + MySQL 实践
  • Sudachi 模拟器架构解析与跨平台实现

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online