GitHub上传项目记录
1、GitHub上传项目
2、GitHub私有仓库改成公有
参考教程1
方式1:网页界面更改
- 进入仓库设置:打开你的私有仓库页面,点击仓库名称下方的 “Settings” 选项卡。
- 找到“危险区域”:在设置页面中,一直滚动到最底部,找到 “Danger Zone”(危险区域)部分。
- 更改可见性:在“Danger Zone”里,找到 “Change repository visibility” 选项,点击旁边的 “Change visibility” 按钮。
- 确认操作:系统会弹出确认窗口,选择 “Make public”。为了确保操作无误,你需要手动输入该仓库的名称来最终确认。
方式2:GitHub CLI 更改
如果习惯使用命令行,或者需要批量操作,可以使用 GitHub CLI。确保已安装并登录了 gh CLI,然后在终端中执行以下命令:
gh repo edit --accept-visibility-change-consequences --visibility public
这个命令会自动将当前目录下的仓库可见性更改为公开。
注意事项
将私有仓库转为公开是不可逆的敏感操作,在确认前,请务必了解以下影响:
- 代码完全公开:仓库内的所有代码、提交历史、分支和标签将对所有人可见。
- 任何人都能复刻(Fork):其他用户可以自由地复刻你的仓库,并基于你的代码进行开发。
- 协作关系变化:目前所有的私有复刻(Fork)会被分离,成为独立的私有仓库,不再与原仓库关联。
- 工作流日志公开:所有 Actions 的历史记录和日志将对所有人可见。
- 推送规则可能失效:仓库中设置的所有推送规则(Push Rulesets)将被禁用。
- 星标和关注者:如果仓库之前是公开后转为私有,原有的星标(Stars)和关注者(Watchers)可能已被清除。再次公开后,这些数据不会恢复。
- 自动获得高级安全功能:仓库将自动获得 GitHub Advanced Security 功能的访问权限(如代码扫描)。
- 组织权限限制:如果你在组织内,且无法更改可见性,可能是组织所有者限制了此操作,需要联系管理员。
3、报错总结
项目文件太大一次性上传报错,error: RPC failed; curl 55 Send failure: Connection was reset
原因:GitHub 对单次推送有约 2GB 的限制,你的推送包(2.52 GiB)已经超出了这个限制,加上网络波动,就很容易触发连接重置。
admin@DESKTOP-5G3KN2I MINGW64 /e/Documents/DeepSeek (master)
$ git branch -M main
admin@DESKTOP-5G3KN2I MINGW64 /e/Documents/DeepSeek (main)
Enumerating objects: 1817, done.
Counting objects: 100% (1817/1817), done.
Delta compression using up to 32 threads
Compressing objects: 100% (1655/1655), done.
error: RPC failed; curl 55 Send failure: Connection was reset
send-pack: unexpected disconnect while reading sideband packet
Writing objects: 100% (1817/1817), 2.52 GiB | 70.15 MiB/s, done.
Total 1817 (delta 84), reused 1817 (delta 84), pack-reused 0 (from 0)
fatal: the remote end hung up unexpectedly
Everything up-to-date
采取方案,调整 Git 配置,增大缓冲区并延长超时。
# 增大 HTTP 缓冲区至 500MB
git config --global http.postBuffer 524288000
# 降低传输速度下限并延长超时时间(防止因速度慢被判定为超时)
git config --global http.lowSpeedLimit 1000
git config --global http.lowSpeedTime 300
# 关闭压缩(有时能提高大文件传输的稳定性)
git config --global core.compression 0
设置后,重新执行 git push 还是报错。采取方案改用 SSH 协议。
cd /e/Documents/DeepSeek
# 查看当前远程地址
git remote -v
# 如果还没有 origin,用这条添加:
git remote add origin git@github.com:用户名/仓库名.git
# 如果之前已经添加过 HTTPS 的 origin,用这条改成 SSH:
git remote set-url origin git@github.com:用户名/仓库名.git
# 确认已改成 SSH
git remote -v
# 测试 SSH 是否能连上 GitHub
ssh -T git@github.com
# 确保分支名是 main
git branch -M main
# 推送
git push -u origin main
报错——Permission denied (publickey) 原因:电脑上还没有可用的 SSH 密钥,或者密钥没有添加到 GitHub 账户。网络已经连上了 GitHub,只是没通过身份验证。
admin@DESKTOP-5G3KN2I MINGW64 /e/Documents/DeepSeek (main)
$ git remote set-url origin git@github.com:用户名/仓库名.git
admin@DESKTOP-5G3KN2I MINGW64 /e/Documents/DeepSeek (main)
$ git remote -v
origin git@github.com:用户名/仓库名.git (fetch)
origin git@github.com:用户名/仓库名.git (push)
admin@DESKTOP-5G3KN2I MINGW64 /e/Documents/DeepSeek (main)
$ ssh -T git@github.com
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is: SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
git@github.com: Permission denied (publickey).
解决方案:
第一步:检查是否已有 SSH 密钥
ls -al ~/.ssh
看看有没有 id_ed25519 或 id_rsa 这类文件。如果没有,或者你不想用旧密钥,直接跳到第二步生成新的。
第二步:生成新的 SSH 密钥
ssh-keygen -t ed25519 -C "你的邮箱@example.com"
按提示操作:
Enter file in which to save the key:直接回车,用默认路径Enter passphrase:可以留空直接回车(方便,但不太安全),也可以设置密码- 再确认一次
生成成功后会看到类似提示:
Your identification has been saved in /c/Users/admin/.ssh/id_ed25519
Your public key has been saved in /c/Users/admin/.ssh/id_ed25519.pub
第三步:把公钥添加到 GitHub
1. 复制公钥内容
cat ~/.ssh/id_ed25519.pub
输出是一整行,类似:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... 你的邮箱@example.com
全部选中复制,从 ssh-ed25519 开始到邮箱结束。
2. 粘贴到 GitHub
- 打开 GitHub,右上角头像 → Settings
- 左侧菜单 → SSH and GPG keys
- 点击 New SSH key
- Title 随便填(例如
DESKTOP-5G3KN2I) - Key type 选 Authentication Key
- Key 里粘贴刚才复制的内容
- 点击 Add SSH key
第四步:测试连接
ssh -T git@github.com
第一次会再问一次 yes/no,输入 yes。成功时会看到:
Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.
看到这句话就说明 SSH 配置成功了。
备用方案
如果不想弄 SSH,想直接换回 HTTPS,可以这样做:
- 把远程地址改回 HTTPS:
git remote set-url origin https://github.com/用户名/仓库名.git - 执行
git push -u origin main - 弹出登录框时输入账号。注意:密码处不能填你的 GitHub 登录密码,必须填你的 Personal Access Token(在 GitHub 设置 -> Developer settings -> Personal access tokens 里生成,选 classic,勾选 repo 权限,生成后复制那串字符当密码用)。
建议先用 SSH 方法,配好后一劳永逸。 先试第一步,把公钥加上去,然后再 git push -u origin main 试试。
4、Git 命令行——项目文件分批上传上传GitHub
已经绑定了 SSH,在当前情况下,最有效的方法是放弃旧历史,重新初始化,然后按文件夹分批 commit 和 push。这样每次推送到 GitHub 的数据量都很小,就不会触发连接重置了。
按下面的步骤操作:
第一步:清理旧仓库
因为现有的 .git 里已经包含了之前大量文件的压缩包历史,必须删掉重来,否则还是会超限。
cd /e/Documents/DeepSeek
rm -rf .git
git init
git branch -M main
git remote add origin git@github.com:用户名/仓库名.git
第二步:创建 .gitignore(过滤掉不需要的大文件)
在根目录新建一个 .gitignore 文件,防止误传模型权重或大文件(根据你文件夹的特点):
echo "*.pth" >> .gitignore
echo "*.bin" >> .gitignore
echo "*.ckpt" >> .gitignore
echo "*.zip" >> .gitignore
echo "*.tar" >> .gitignore
echo "*.gz" >> .gitignore
echo "__pycache__/" >> .gitignore
echo ".DS_Store" >> .gitignore
echo "node_modules/" >> .gitignore
第三步:分批提交和推送(核心步骤)
不要使用 git add .,而是按文件夹逐个添加、提交、推送。
1. 先提交根目录下的零散文件
git add .gitignore README.md *.md *.docx
git commit -m "初始化:添加根目录文档"
git push -u origin main
(如果没有 .docx 或 .md 文件,可能会报错,忽略即可,继续下一步)
2. 逐个提交并推送文件夹
你要根据截图里的文件夹,一个一个来。每次 push 成功后,再执行下一个:
# 提交笔记
git add 笔记
git commit -m "添加:笔记"
git push
# 提交 Agent
git add Agent
git commit -m "添加:Agent"
git push
# 提交 AI大模型理论
git add AI大模型理论
git commit -m "添加:AI大模型理论"
git push
# 提交 transformer
git add transformer
git commit -m "添加:transformer"
git push
以此类推,把剩下的文件夹(AI大模型学习、ai科普PPT、deepseek+微调训练、deepseek+知识库、deepseek部署、deepseek学习、RAG、understandingDL-main、部署参考文档附件、微调、蒸馏+量化)依次 add、commit、push。
⚠️ 注意事项
- 如果某个文件夹特别大(例如超过 1GB):
即使单独推这一个文件夹也会失败。这种情况下,你需要进入这个文件夹,把大文件移出去,只上传代码和文档,或者使用 Git LFS(但免费额度只有 1GB)。 - 如果遇到子模块报错(比如之前的
magic_conch_backend):
进去删掉里面的.git文件夹:rm -rf 路径/magic_conch_backend/.git,然后再git add。 - 查看当前还剩哪些没提交:
随时用git status查看还没被git add的文件。 - 检查已经提交的文件大小:
如果想看有没有大文件混进去了,可以用git ls-files | xargs du -h | sort -rh | head -20。
💡 如果依然报错 RPC failed
如果即使按文件夹推,某个文件夹还是太大,你可以在该文件夹里新建一个 .gitignore 忽略掉大文件,或者用以下命令只在本地保留代码(排除大文件):
git add 文件夹名 -- ':!*.pdf' ':!*.pptx' ':!*.bin'
最后提醒:在 GitHub 网页上刷新,确认每次 push 都有新的 commit 记录,一旦某个文件夹 push 失败,不要去执行 git add .,先解决那个文件夹的问题,再继续下一个。
知识点:
推送包体积超过了 2.00 GiB,被 GitHub 服务器硬性拒绝了。
报错信息 remote: fatal: pack exceeds maximum allowed size (2.00 GiB) 明确说明了这一点。
第一步:撤销刚才的提交(但保留文件)
git reset --mixed HEAD~1
这会把你的提交撤销,但文件都完好无损地留在文件夹里,不会丢失。
(如果执行后报错,说明你本地只有这一个提交,改用 git reset --mixed HEAD~1 或 git reset --mixed 即可,直到 git status 显示文件变回“未跟踪”状态)
第二步:查看究竟是哪些文件过大
git status
看看是不是有很多大文件夹变成了“untracked files”。为了找出“罪魁祸首”,可以执行下面这行命令,看看当前文件夹里到底哪个文件最大:
# 列出当前目录下最大的 20 个文件(以 MB 为单位)
find . -type f -not -path "./.git/*" -exec du -h {} + | sort -rh | head -20
第三步:把大的文件拿出来分批上传

浙公网安备 33010602011771号