一、配置 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
-
在 GitHub 网页新建一个空仓库.
-
在本地的项目目录里执行:
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 完成、确认代码没问题后,随时可以切换,操作很简单:
网页操作:
- 打开你的仓库页面
- 点击 Settings(仓库设置,不是账号设置)
- 拉到最下面 Danger Zone
- 找到 Change repository visibility → 点击 Change visibility
- 选择 Make public,按提示输入仓库名确认即可