记录项目保存到 GitHub 的完整过程

Git 操作笔记

这个文档记录本项目最常用的 Git / GitHub 操作。以后每次改完代码,可以按这里一步一步做。

GitHub 仓库: ```text https://github.com/stduliang/yolov5-deploy.git

1. 先进入项目目录

打开 PowerShell,然后输入:

cd C:\Users\YPL\Desktop\yolov5

2. 查看当前状态

每次操作 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.txt

4. 不要随便 git add .

本项目里有模型文件,例如:

data/yolov5/ yolov5s-0.onnx *.onnx *.trt

这些文件通常很大,不建议直接提交到 GitHub。

所以不要随便用:

git add.

更推荐明确写出要提交的代码文件。

例如这次 Windows 编译相关修改,只提交这几个:

git add CMakeLists.txt app_yolov5.cppcmake/common.cmake

5. 保存到本地 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:

  1. 打开 Visual Studio。
  2. 选择File -> Open -> Folder
  3. 打开项目目录:
<项目目录>
  1. 打开菜单视图 -> Git 更改
  2. git 更改里可以看到修改过的文件。
  3. 点击某个文件,可以查看具体 diff。
  4. 对修改后的每个文件右键“暂存”,只暂存需要提交的代码文件,不要暂存大文件。
  5. 填写 “提交信息”。
  6. 点击全部提交,再从工具栏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:10808
git config--global https.proxy http://127.0.0.1:10808

确认是否设置成功:

git config--global--get http.proxy
git config--global--get https.proxy

应该都显示:

http://127.0.0.1:10808

然后重新上传:

git push origin main

取消 Git 代理

git config--global--unset http.proxy
git config--global--unset https.proxy

10. 最常用的一套流程

以后每次改完代码,按这个顺序来:

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,并且把代码修改也丢掉。

除非非常确定这些修改不需要了,否则不要用。