AutoDL项目上传到GitHub

一、配置 GitHub 认证

推荐用 SSH key(一次配置,长期有效):

bash 复制代码
# 生成密钥(一路回车即可)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 查看公钥内容
cat ~/.ssh/id_ed25519.pub

把输出的内容复制,去 GitHub 网页:Settings → SSH and GPG keys → New SSH key,粘贴保存。

测试是否连通:

bash 复制代码
ssh -T git@github.com

如果显示 Hi xxx! You've successfully authenticated,就说明可以了。

AutoDL可能需要学术资源加速。

二、将本地项目推送到GitHub

  1. 在 GitHub 网页新建一个空仓库.

  2. 在本地的项目目录里执行:

bash 复制代码
git status
git remote -v

有输出说明已经是 git 仓库了(多半能看到 origin 指向原作者的仓库)

如果没有输出:

bash 复制代码
git init

# 添加 .gitignore,避免把大文件传上去(见下方说明)

git add .
git commit -m "版本说明"
git branch -M main
git remote add origin git@github.com:你的用户名/仓库名.git

如果本身就是git仓库:

bash 复制代码
# 把原来的 origin 重命名为 upstream(代表"上游"原仓库)
git remote rename origin upstream
# git remote add origin git@github.com:你的用户名/项目名.git
git remote set-url origin git@github.com:你的用户名/新仓库名.git
# 确认一下
git remote -v
#提交并推送
git add .
git status   # 推荐推送前再检查一遍,确认ignored文件没有被加进去

git commit -m "修改说明"
git push -u origin main

三、.gitignore文件的使用

例如不想上传下面的几个文件与文件目录

bash 复制代码
cat >> .gitignore << 'EOF'
main_nuscenes.py
mot_3d/mot.py
mot_3d/tracklet/tracklet.py
results/
EOF

.gitignore 只对未被跟踪 的文件生效。如果 results/ 之前已经被 git add 提交过,那么仅仅修好 .gitignore 是不够的,必须手动把它从 git 索引里移除:

bash 复制代码
# 从 git 跟踪中移除,但保留本地文件(不会删除你磁盘上的文件)
git rm -r --cached results/

# 确认状态
git status

确认状态无误后,提交并推送

bash 复制代码
git add .gitignore
git commit -m "修复 .gitignore,移除results目录"
git push

推送后,GitHub 仓库里results/ 这个目录会消失(但本地文件还在)。

四、安全收尾

在 GitHub -> Settings -> SSH and GPG keys 中删除这台服务器对应的 SSH key

删除后,即使别人拿到这台机器上的私钥,也无法再访问你的 GitHub

删除服务器上的 SSH 私钥和公钥文件(保险起见)

(1) 仓库从 Private 改为 Public

在 push 完成、确认代码没问题后,随时可以切换,操作很简单:

网页操作:

  1. 打开你的仓库页面
  2. 点击 Settings(仓库设置,不是账号设置)
  3. 拉到最下面 Danger Zone
  4. 找到 Change repository visibility → 点击 Change visibility
  5. 选择 Make public,按提示输入仓库名确认即可