Skip to main content

Git协作

🎯 GitHub 贡献教程:Fork + Pull Request(适合校园代理环境)
——专为在校学生优化,解决端口 22 被拦截问题,手把手教你参与开源贡献


sidebar_position: 2

🧭 目标

学会在 GitHub 上:

✅ Fork 仓库
✅ 用代理友好的 SSH 端口 443 克隆
✅ 修改代码 → 提交 → 推送 → 发起 Pull Request(PR)
✅ 同步原项目更新(可选)


🛠️ 第一步:Fork 原仓库

  1. 打开原项目页面 👉 https://github.com/INFO-studio/CQU-openlib
  2. 点击右上角 Fork 按钮 → 选择你的账号(如 FunokeGD)→ 等待 Fork 完成。

✅ 完成后你将拥有自己的副本:
👉 https://github.com/FunokeGD/CQU-openlib


🧩 第二步:配置 SSH 通过 443 端口连接 GitHub(解决校园代理问题)

⚠️ 很多校园网络屏蔽了 SSH 默认端口 22,必须改用 ssh.github.com:443

1. 测试是否能连通(可选)

ssh -T -p 443 git@ssh.github.com

如果看到:

Hi FunokeGD! You've successfully authenticated...

✅ 说明你的 SSH key 已正确配置,可以走 443 端口。

如果报错,请先配置 SSH Key:
👉 GitHub 官方教程:Generating a new SSH key


📥 第三步:克隆你 Fork 的仓库(使用 443 端口)

cd ~/Documents
git clone ssh://git@ssh.github.com:443/FunokeGD/CQU-openlib.git
cd CQU-openlib

✅ 使用 ssh://git@ssh.github.com:443/... 格式,绕过端口 22 限制!


🔗 第四步:添加原仓库为 upstream(用于后续同步更新)

git remote add upstream ssh://git@ssh.github.com:443/INFO-studio/CQU-openlib.git

验证配置:

git remote -v

你应该看到:

origin    ssh://git@ssh.github.com:443/FunokeGD/CQU-openlib.git (fetch/push)
upstream ssh://git@ssh.github.com:443/INFO-studio/CQU-openlib.git (fetch)

⚠️ 注意:你不能upstream 推送,只能拉取更新 —— 这是正常的!


🌿 第五步:创建新分支进行开发(推荐)

不要在 main 上直接修改!创建功能分支:

git checkout -b my-feature-branch

例如:

git checkout -b fix-readme-typo

✍️ 第六步:修改文件 → 提交

# 修改你想改的文件,比如 README.md
git add .
git commit -m "修复文档拼写错误"

💡 提交信息尽量清晰,如:

  • fix: 修复登录页按钮错位
  • docs: 更新安装说明
  • feat: 新增用户头像上传功能

📤 第七步:推送到你自己的 Fork

git push origin my-feature-branch

✅ 成功!因为你推送到的是你自己的仓库,肯定有权限。


📬 第八步:发起 Pull Request(PR)

  1. 打开你的 Fork 页面 👉 https://github.com/FunokeGD/CQU-openlib
  2. GitHub 会自动提示你刚推送的分支 → 点击 “Compare & pull request”
  3. 填写标题和描述(越详细越好)
  4. 点击 “Create Pull Request”

🎉 恭喜!你已成功提交贡献,等待项目维护者审核合并!


🔄 附录:如何同步原仓库的最新更新?(进阶)

当原项目更新后,你想同步到你的 Fork:

# 切换到 main 分支
git checkout main

# 拉取原仓库最新内容
git pull upstream main

# 推送到你自己的 Fork
git push origin main

之后你可以在最新基础上继续开发新功能。


❗ 常见错误处理(校园网络专用)

如果你看到:

Connection closed by ... port 22
fatal: Could not read from remote repository.

👉 说明你还在用默认端口 22。请务必检查并设置远程地址为 443 格式:

# 如果你之前克隆错了,修正远程地址:
git remote set-url origin ssh://git@ssh.github.com:443/FunokeGD/CQU-openlib.git
git remote set-url upstream ssh://git@ssh.github.com:443/INFO-studio/CQU-openlib.git

🎓 小贴士

  • 所有操作都在你自己的 Fork 中进行,不会影响原项目。
  • 每次新功能都建议新建分支,保持 main 干净。
  • PR 提交后,可以在评论区和维护者交流,根据反馈修改代码。
  • 项目根目录的 CONTRIBUTING.md 文件通常包含贡献规范,建议阅读。

✅ 你已完成 GitHub 协作入门!

你现在掌握了:

🔹 如何绕过校园代理限制克隆仓库
🔹 如何 Fork → 修改 → 推送 → 提交 PR
🔹 如何与开源项目协作,即使没有直接权限!


📬 下一步建议:

找一个小任务(比如修个错别字、加个注释),完整走一遍流程,你的第一个 PR 就诞生了!

遇到任何问题,随时回来问我 😊
开源世界,欢迎你的加入!🚀


📥 保存本教程到本地,随时查阅!
祝你 PR 顺利合并,成为开源贡献者!