[React Native for OpenHarmony] 将代码提交至AtomGit平台自建公开仓库用于分布式管理
在 React Native for OpenHarmonyRN-OH的开发实践中我选择了 TortoiseGit 这个可视化工具来完成代码的提交与推送。相比纯命令行它对 Git 新手更加友好也能让整个过程更直观。下面我将完整记录这次操作的全过程希望能帮到有同样需求的开发者。一、前期准备本地项目与远程仓库就绪我已经在本地完成了 RN-OH 项目的开发与调试代码可以正常运行。在 AtomGit 平台上创建了公开仓库react-native-oh-training并记录下了仓库的 HTTPS 地址https://atomgit.com/creaDelight/react-native-oh-training.git。记录下这串地址这是一会在TortoiseGit要填写的远端地址安装并配置 TortoiseGit确保已安装 TortoiseGit并完成了基础配置用户名、邮箱这些信息会作为代码提交的作者信息。在本地项目根目录右键选择TortoiseGit → Settings确认 Git 配置中的user.name和user.email与 AtomGit 账号信息一致。 这里对如何使用小乌龟也就是TortoiseGit不加赘述有很多文章有相关教程。AtomGit 代码托管全流程踩坑指南基于 TortoiseGit本章节对应代码分布式管理的全流程摒弃平铺直叙的步骤讲解完全以问题为导向拆解新手从本地仓库初始化到远程推送的每一个高频报错与解决方案同时保留 TortoiseGit 可视化工具的操作核心新手可直接对照避坑。一前期准备阶段的权限与配置避坑问题 1AtomGit 仓库关联后提示 “仓库不存在 / 权限拒绝”踩坑场景在 AtomGit 创建仓库后本地配置远程地址时提示仓库不存在或是推送时提示无权限访问。根因分析新手创建仓库时选择了私有属性但本地未配置正确的访问凭证或是仓库 HTTPS 地址复制错误多复制了空格、特殊字符导致地址失效也可能混用了 HTTPS 与 SSH 地址导致协议不匹配。解决方案正确复制仓库地址在 AtomGit 仓库主页点击「克隆 / 下载」选择 HTTPS 协议完整复制仓库地址确保地址末尾带有.git 后缀无多余空格私有仓库权限配置私有仓库必须创建个人访问令牌PAT用于身份验证操作路径AtomGit 个人中心 - 设置 - 个人访问令牌 - 创建令牌勾选 repo 仓库全量权限设置有效期后复制保存令牌仅显示一次仓库属性校验若为团队协作仓库需确认仓库管理员已为你的账号开通读写权限仅访客权限无法推送代码。问题 2TortoiseGit 安装后右键无菜单Git 配置不生效踩坑场景完成 TortoiseGit 安装后右键没有对应的 Git 操作菜单或是配置了用户名、邮箱后提交记录不生效。根因分析新手颠倒了安装顺序未先安装 Git for Windows 就直接安装 TortoiseGit导致工具缺少核心 Git 环境或是仅配置了项目级的用户名邮箱未配置全局配置导致提交信息异常。解决方案强制正确安装顺序先安装 Git for Windows完成安装后重启电脑再安装 TortoiseGit安装过程中自动关联 Git 环境全局配置校验在项目根目录右键选择 TortoiseGit → Settings → Git确认 user.name 与 user.email 已正确配置且与 AtomGit 账号的用户名、绑定邮箱完全一致配置生效验证打开 Git Bash执行git config --global --list查看配置信息是否正确确保全局配置生效。二本地仓库初始化的常见错误与修复问题 1初始化仓库后项目文件丢失 / 无法提交代码踩坑场景执行创建版本库操作后项目原有代码文件丢失或是提交时提示无文件可提交。根因分析新手误勾选了创建版本库时的「纯仓库」选项创建了无工作目录的裸仓库导致项目文件被重置或是在非项目根目录执行了初始化.git 文件夹生成在错误路径Git 无法识别项目文件。解决方案文件丢失紧急修复先备份项目剩余文件删除根目录下的.git 隐藏文件夹重新执行初始化操作正确初始化操作务必在 RN-OH 项目根目录与 package.json 同级空白处右键选择「Git 在这里创建版本库」弹出的窗口中不勾选任何选项直接点击 OK初始化成功后根目录会生成隐藏的.git 文件夹新手避坑操作初始化前务必完整备份项目代码Windows 系统开启「显示隐藏的项目」确认.git 文件夹在项目根目录即为初始化成功。问题 2提交时提示 “文件过大超出 Git 限制提交失败”踩坑场景第一次提交代码时提示文件大小超出限制提交中断无法完成本地提交。根因分析新手未配置.gitignore 文件导致 RN-OH 项目中的 node_modules 依赖包、harmony 编译 build 缓存、日志文件等大体积文件被纳入版本控制超出 Git 的单文件大小限制。解决方案先配置.gitignore 文件在项目根目录创建.gitignore 文件写入 RN-OH 项目专用忽略规则核心包含以下内容# 依赖目录 node_modules/ # 编译缓存 harmony/build/ android/build/ ios/build/ # 日志文件 *.log # 编辑器配置 .idea/ .vscode/ # 系统文件 .DS_Store Thumbs.db # 签名敏感文件 *.p12 *.jks清理已缓存的大文件若已执行过 add 操作执行git rm -r --cached node_modules命令将大文件从暂存区移除再重新执行提交操作。避坑指南必须先配置.gitignore 文件再执行第一次代码提交避免后续清理仓库历史大文件的复杂操作。三远程仓库关联的高频报错解决问题 1添加远程仓库时提示 “remote origin already exists”踩坑场景配置 AtomGit 远程地址时提示远程 origin 已存在无法添加新的远程仓库。根因分析项目之前初始化过 Git 仓库已配置过 origin 远程地址重复添加导致报错或是克隆过其他仓库原有远程地址未清理。解决方案先查看现有远程地址打开 Git Bash执行git remote -v查看已配置的远程仓库地址删除旧的远程地址执行git remote rm origin删除原有 origin 配置重新添加 AtomGit 地址在 TortoiseGit 设置 - 远端中填写远端名称 originURL 粘贴 AtomGit 仓库的 HTTPS 地址点击添加 - 保存即可。问题 2拉取远程代码时提示 “fatal: refusing to merge unrelated histories”踩坑场景关联远程仓库后第一次拉取代码时提示拒绝合并不相关的历史拉取失败。根因分析创建 AtomGit 远程仓库时勾选了「初始化 README、LICENSE、.gitignore」选项远程仓库已有独立的提交历史与本地仓库的提交历史无关联Git 默认拒绝合并。解决方案新手推荐方案删除已创建的 AtomGit 仓库重新创建空仓库不勾选任何初始化选项直接关联本地仓库推送从根源避免历史冲突现有仓库修复方案执行拉取命令时添加允许无关历史合并的参数命令如下bashgit pull origin master --allow-unrelated-histories合并完成后即可正常执行推送操作。四代码提交与推送的核心问题处理问题 1推送时提示 “authentication failed” 身份验证失败踩坑场景执行推送操作时弹出身份验证窗口输入 AtomGit 的账号登录密码后提示验证失败无法推送代码。根因分析这是新手托管代码的第一大高频坑 ——AtomGit 的 HTTPS 推送不支持账号登录密码必须使用前文创建的个人访问令牌PAT作为密码进行身份验证或是 Windows 凭据管理器缓存了错误的账号信息导致验证持续失败。解决方案正确身份验证方式弹出验证窗口时用户名填写 AtomGit 的账号名密码栏必须粘贴之前创建的个人访问令牌PAT而非账号登录密码清理错误缓存凭证打开 Windows 控制面板 - 凭据管理器 - Windows 凭据删除所有 AtomGit 相关的缓存凭据重新执行推送操作输入正确的账号与 PAT 令牌令牌权限校验确认 PAT 令牌已勾选 repo 仓库的所有读写权限且令牌未过期过期后需重新创建。问题 2推送时提示 “failed to push some refs to 远程地址”踩坑场景本地提交成功执行推送时提示推送失败无法将本地分支推送到远程仓库。根因分析远程仓库有本地不存在的提交内容比如远程新增了 README 文件本地分支落后于远程分支Git 为了避免覆盖远程代码直接拒绝了推送请求。解决方案先拉取远程最新代码在项目根目录右键选择 TortoiseGit → Pull拉取远程仓库的最新代码若有冲突先完成冲突解决变基处理避免分叉新手推荐使用 rebase 模式拉取执行git pull origin master --rebase将本地提交拼接到远程提交之后避免分支分叉重新执行推送拉取合并完成后再次右键选择 TortoiseGit → Push保持本地分支与远端分支一致点击确定即可完成推送。避坑指南每次推送代码前必须先拉取远程最新代码解决冲突后再推送养成 “先拉后推” 的习惯。问题 3推送成功后AtomGit 仓库看不到提交记录 / 提交者不显示踩坑场景TortoiseGit 提示推送成功但 AtomGit 仓库主页看不到提交记录或是提交记录没有关联到自己的账号。根因分析一是本地推送的分支与 AtomGit 仓库的默认分支不一致比如本地是 master 分支远程默认分支是 main推送到了非默认分支主页无法直接查看二是本地配置的 user.email 与 AtomGit 账号绑定的邮箱不一致提交记录无法关联到账号。解决方案分支匹配校验在 AtomGit 仓库的分支列表中查看是否有本地推送的 master 分支可在仓库设置中将 master 设置为默认分支即可在主页查看提交记录邮箱配置校验核对本地 Git 配置的 user.email必须与 AtomGit 账号绑定的邮箱完全一致不一致的话执行以下命令修改全局配置bashgit config --global user.email 你的AtomGit绑定邮箱后续提交即可正常关联到 AtomGit 账号显示正确的提交者信息。二、具体流程在 RN-OH 项目根目录空白处右键点击进入文件夹内然后右键创建版本库在弹出的窗口中不勾选 选项点击OK完成本地仓库的创建。此时项目目录下会生成一个隐藏的.git文件夹这是 Git 管理代码的核心目录。三、添加远程仓库地址在项目根目录右键选择 设置在git凭证位置填入你注册的时候用的用户名和邮箱在远端窗口中将之前码云或者你github上面的那串复制的地址写入url以及推送url里面先点击添加/保存直接确定。在 “Remote” 输入框中填写origin这是 Git 默认的远程仓库别名在 “URL” 输入框中粘贴 AtomGit 仓库的 HTTPS 地址。点击OK保存这样本地仓库就和远程 AtomGit 仓库建立了关联。四、第一次提交与推送添加文件到本地主分支在项目根目录右键选择TortoiseGit → 提交在弹出的窗口中全部会选中所有文件点击OK将所有代码文件添加到 Git 暂存区。PS这里建议创建一个新分支一般在团体协助中会在新分支创建自己的分支待其他团队成员审核后才进行下一步合并到主分支这里只有我一人就直接提交到主分支了。推送到 AtomGit 远程仓库在项目根目录右键选择TortoiseGit → Push。在 “Push” 窗口中默认的远程仓库是origin分支是master保持默认设置点击OK。此时会弹出身份验证窗口输入你的 AtomGit 账号和密码或个人访问令牌点击OK开始推送。等待推送完成当窗口显示 “Success” 时说明代码已成功上传到 AtomGit 仓库。五、后续开发与版本管理日常开发提交后续开发中每次完成一个功能或修复一个 bug都可以通过TortoiseGit → Commit提交到本地仓库。建议遵循 Angular Commit Message 规范比如plaintextfix: 修复 Index.ets 中 logger 初始化问题 docs: 更新 README 中的部署步骤同步远程仓库定期通过TortoiseGit → Pull拉取远程仓库的最新代码避免冲突。如果需要开发新功能建议创建新分支TortoiseGit → Create Branch开发完成后再合并到主分支。六、总结与心得小心得只有提交到本地之后才能推送到远端不要颠倒顺序。通过 TortoiseGit 这个可视化工具我无需记忆复杂的 Git 命令就完成了从本地项目初始化到远程仓库推送的全流程。这对于 Git 新手来说非常友好也让我能更专注于 RN-OH 项目的开发本身。在 AtomGit 上的公开仓库希望这篇记录能帮助更多开发者顺利完成代码的版本管理与推送。也希望这篇文章能对正在尝试鸿蒙跨平台开发的同学有所帮助也欢迎大家在评论区交流踩坑经验。欢迎加入开源鸿蒙跨平台社区https://openharmonycrossplatform.csdn.net

相关新闻

Local Moondream2应用场景:AI绘画创作者的灵感激发与素材整理工具

Local Moondream2应用场景:AI绘画创作者的灵感激发与素材整理工具

Local Moondream2应用场景:AI绘画创作者的灵感激发与素材整理工具 1. 引言:当AI绘画遇上“看图说话”的智能助手 如果你经常使用AI绘画工具,一定遇到过这样的烦恼:脑子里有个绝妙的画面,却怎么也写不出能让AI准确理解…

2026/5/17 11:28:30 阅读更多 →
TensorFlow-v2.9如何实现高并发?多实例部署优化案例分享

TensorFlow-v2.9如何实现高并发?多实例部署优化案例分享

TensorFlow-v2.9如何实现高并发?多实例部署优化案例分享 TensorFlow 2.9 是一个功能强大的深度学习框架,但当你的模型需要服务成千上万的并发请求时,单个实例往往会成为瓶颈。想象一下,一个智能客服系统在促销期间,或…

2026/5/17 11:28:31 阅读更多 →
企业中常见dubbo项目分层

企业中常见dubbo项目分层

首先项目都会有一个网关层,网关层是统一对外的。下面一层是服务层,是用来处理业务逻辑的,由网关层去调用服务层,服务层下面是和数据交互的dao层。在企业中,网关层是和服务层分离开来的,请求到了网关层通过过…

2026/7/2 20:37:54 阅读更多 →

最新新闻

3步掌握高效数据迁移:开源格式转换工具的完整实战指南

3步掌握高效数据迁移:开源格式转换工具的完整实战指南

3步掌握高效数据迁移:开源格式转换工具的完整实战指南 【免费下载链接】onenote-md-exporter ConsoleApp to export OneNote notebooks to Markdown formats 项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter 你是否曾面对堆积如山的OneNot…

2026/7/6 5:40:40 阅读更多 →
利用Applera1n工具绕过iPhone激活锁:原理、实操与限制详解

利用Applera1n工具绕过iPhone激活锁:原理、实操与限制详解

1. 项目概述与核心需求解析最近在折腾旧iPhone的朋友,估计没少被“激活锁”这个拦路虎给卡住。手里拿着一台不知道Apple ID密码的二手设备,或者自己忘了密码的老机器,看着那个“激活锁”界面,感觉跟砖头没什么两样。我手头就有一台…

2026/7/6 5:40:40 阅读更多 →
ROFLPlayer:英雄联盟回放分析神器,三步解锁你的游戏复盘能力

ROFLPlayer:英雄联盟回放分析神器,三步解锁你的游戏复盘能力

ROFLPlayer:英雄联盟回放分析神器,三步解锁你的游戏复盘能力 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在…

2026/7/6 5:38:39 阅读更多 →
d2s-editor:暗黑破坏神2存档编辑器,轻松管理你的游戏角色数据

d2s-editor:暗黑破坏神2存档编辑器,轻松管理你的游戏角色数据

d2s-editor:暗黑破坏神2存档编辑器,轻松管理你的游戏角色数据 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾为暗黑破坏神2复杂的存档编辑而烦恼?想要调整角色属性却不知从何下手&am…

2026/7/6 5:36:39 阅读更多 →
如何用FanControl打造智能静音电脑:从零基础到专业调校的完整指南

如何用FanControl打造智能静音电脑:从零基础到专业调校的完整指南

如何用FanControl打造智能静音电脑:从零基础到专业调校的完整指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_…

2026/7/6 5:36:39 阅读更多 →
129、轻量化 Head 设计:用 Depthwise Conv 加 1×1 Conv 替代标准检测头卷积

129、轻量化 Head 设计:用 Depthwise Conv 加 1×1 Conv 替代标准检测头卷积

129、轻量化 Head 设计:用 Depthwise Conv 加 1乘1 Conv 替代标准检测头卷积 从一次显存爆炸说起 去年秋天调一个YOLOv11n的工业检测模型,输入分辨率压到640640,batch size设到32,结果RTX 3090直接OOM。排查半天,发现检测头三个分支的卷积层占了将近40%的参数量。当时项目…

2026/7/6 5:32:38 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻