GitHub上传项目记录

1、GitHub上传项目

参考教程1
参考教程2

2、GitHub私有仓库改成公有

参考教程1

方式1:网页界面更改

  1. 进入仓库设置:打开你的私有仓库页面,点击仓库名称下方的 “Settings” 选项卡。
  2. 找到“危险区域”:在设置页面中,一直滚动到最底部,找到 “Danger Zone”(危险区域)部分。
  3. 更改可见性:在“Danger Zone”里,找到 “Change repository visibility” 选项,点击旁边的 “Change visibility” 按钮。
  4. 确认操作:系统会弹出确认窗口,选择 “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_ed25519id_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

  1. 打开 GitHub,右上角头像 → Settings
  2. 左侧菜单 → SSH and GPG keys
  3. 点击 New SSH key
  4. Title 随便填(例如 DESKTOP-5G3KN2I
  5. Key type 选 Authentication Key
  6. Key 里粘贴刚才复制的内容
  7. 点击 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,可以这样做:

  1. 把远程地址改回 HTTPS:git remote set-url origin https://github.com/用户名/仓库名.git
  2. 执行 git push -u origin main
  3. 弹出登录框时输入账号。注意:密码处不能填你的 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科普PPTdeepseek+微调训练deepseek+知识库deepseek部署deepseek学习RAGunderstandingDL-main部署参考文档附件微调蒸馏+量化)依次 addcommitpush

⚠️ 注意事项

  1. 如果某个文件夹特别大(例如超过 1GB)
    即使单独推这一个文件夹也会失败。这种情况下,你需要进入这个文件夹,把大文件移出去,只上传代码和文档,或者使用 Git LFS(但免费额度只有 1GB)。
  2. 如果遇到子模块报错(比如之前的 magic_conch_backend
    进去删掉里面的 .git 文件夹:rm -rf 路径/magic_conch_backend/.git,然后再 git add
  3. 查看当前还剩哪些没提交
    随时用 git status 查看还没被 git add 的文件。
  4. 检查已经提交的文件大小
    如果想看有没有大文件混进去了,可以用 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~1git reset --mixed 即可,直到 git status 显示文件变回“未跟踪”状态)

第二步:查看究竟是哪些文件过大

git status

看看是不是有很多大文件夹变成了“untracked files”。为了找出“罪魁祸首”,可以执行下面这行命令,看看当前文件夹里到底哪个文件最大:

# 列出当前目录下最大的 20 个文件(以 MB 为单位)
find . -type f -not -path "./.git/*" -exec du -h {} + | sort -rh | head -20

第三步:把大的文件拿出来分批上传

posted @ 2026-09-10 13:51  乌卢鲁  阅读(22)  评论(0)    收藏  举报