记录项目保存到 GitHub 的完整过程
Git 操作笔记
这个文档记录本项目最常用的 Git / GitHub 操作。以后每次改完代码,可以按这里一步一步做。
GitHub 仓库: ```text https://github.com/stduliang/yolov5-deploy.git1. 先进入项目目录
打开 PowerShell,然后输入:
cd C:\Users\YPL\Desktop\yolov52. 查看当前状态
每次操作 Git,第一步都建议先看状态:
git status常见结果说明:
nothing to commit, working tree clean表示当前没有需要保存的代码修改。
Changes not staged for commit表示有文件改了,但还没有选择要保存哪些文件。
Changes to be committed表示文件已经 add,准备 commit。
Your branch is ahead of 'origin/main' by 1 commit表示本地已经 commit 了,但还没有 push 到 GitHub。
Your branch is up to date with 'origin/main'表示本地和 GitHub 已同步。
3. 查看改了哪些文件
看简短列表:
git status--short看每个文件改了多少:
gitdiff--stat看某个文件具体改了什么,例如:
gitdiff--CMakeLists.txt4. 不要随便 git add .
本项目里有模型文件,例如:
data/yolov5/ yolov5s-0.onnx *.onnx *.trt这些文件通常很大,不建议直接提交到 GitHub。
所以不要随便用:
git add.更推荐明确写出要提交的代码文件。
例如这次 Windows 编译相关修改,只提交这几个:
git add CMakeLists.txt app_yolov5.cppcmake/common.cmake5. 保存到本地 Git
add 之后,执行 commit:
git commit-m"Adapt project for Windows TensorRT build"commit 的意思是:把当前选中的修改保存到本地 Git 历史里。
注意:commit 只是保存在自己电脑里,还没有上传到 GitHub。
6. 上传到 GitHub
git push origin main成功时会看到类似:
To https://github.com/<你的用户名>/<你的仓库名>.git 22f8875..d0341b6 main -> main这表示 GitHub 上的 main 分支已经更新成功。
7. 上传后确认
push 成功后,再检查一次:
git status理想结果:
Your branch is up to date with 'origin/main'.如果还看到:
Untracked files: data/yolov5/这是正常的。它表示模型文件还没有提交,我们是故意不提交它。
8. Visual Studio 里查看 Git 改动
如果用 Visual Studio:
- 打开 Visual Studio。
- 选择
File -> Open -> Folder。 - 打开项目目录:
<项目目录>- 打开菜单
视图 -> Git 更改。 - 在
git 更改里可以看到修改过的文件。 - 点击某个文件,可以查看具体 diff。
- 对修改后的每个文件右键“暂存”,只暂存需要提交的代码文件,不要暂存大文件。
- 填写 “提交信息”。
- 点击
全部提交,再从工具栏Git中,推送。或者直接“全部提交并推送”,上传到 GitHub。
重点:不要直接点全部提交,除非你确认所有文件都应该提交。
9. GitHub 上传失败
如果执行:
git push origin main报错:
fatal: unable to access 'https://github.com/...': Recv failure: Connection was aborted通常是网络问题。
先测试 GitHub 端口:
Test-NetConnectiongithub.com-Port 443本机代理端口是10808,所以设置:
git config--global http.proxy http://127.0.0.1:10808git config--global https.proxy http://127.0.0.1:10808确认是否设置成功:
git config--global--get http.proxygit config--global--get https.proxy应该都显示:
http://127.0.0.1:10808然后重新上传:
git push origin main取消 Git 代理
git config--global--unset http.proxygit config--global--unset https.proxy10. 最常用的一套流程
以后每次改完代码,按这个顺序来:
git status查看改了哪些文件:
gitdiff--stat只添加要保存的代码文件:
git add 文件1 文件2 文件3提交到本地:
git commit-m"说明这次改了什么"上传到 GitHub:
git push origin main最后确认:
git status看到:
Your branch is up to date with 'origin/main'.就说明这次代码已经安全保存。
11. 如果错误提交了,如何回退
回退前先判断一件事:
这个错误提交有没有 push 到 GitHub?判断方法:
git status再看最近提交:
git log--oneline-5情况一:还没有 push
如果看到:
Your branch is ahead of 'origin/main' by 1 commit说明这个提交只在本地,还没有上传到 GitHub。
如果想撤销最近一次 commit,但保留文件修改,用:
git reset--soft HEAD~1这条命令的效果是:
commit 被撤销,但代码修改还在。然后可以重新选择文件:
git add 文件1 文件2再重新提交:
git commit-m"新的提交说明"情况二:已经 push 到 GitHub
如果错误提交已经上传到 GitHub,新手更推荐用:
git revert HEAD这条命令的效果是:
新建一个反向提交,把上一次提交的修改撤回来。然后上传这个回退提交:
git push origin main这种方式不会破坏 GitHub 上已经存在的提交历史,更安全。
尽量不要随便用 hard
下面这条命令很危险:
git reset--hard HEAD~1它会撤销 commit,并且把代码修改也丢掉。
除非非常确定这些修改不需要了,否则不要用。
