目录
仅供本人记录查阅
全网最丝滑的 本地仓库上传GitHub操作 (Git建立本地仓库并上传代码到GitHub中)-------摆脱繁琐和冗余 清晰明了!!
全网最丝滑的 Git克隆远程仓库操作 (Git克隆远程仓库并上传代码到远程仓库中)-------摆脱繁琐和冗余 清晰明了!!
一. GitHub ssh-key配置
- 验证
ssh -T git.com
- 配置用户名和邮箱
git config --global user.name "meiyouyudi"
git config --global user.email "meiyouyudi@foxmail.com"
- 生成ssh-key
ssh-keygen -t rsa -C "meiyouyudi@foxmail.com"
meiyo@WIN-DC MINGW64 ~/Desktop/ultralytics (main)
$ ssh-keygen -t rsa -C "meiyouyudi@foxmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/meiyo/.ssh/id_rsa):
Enter passphrase for "/c/Users/meiyo/.ssh/id_rsa" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/meiyo/.ssh/id_rsa
Your public key has been saved in /c/Users/meiyo/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:E2UpDCK6m85gHcaNdb13rP2Cg1uEe15a03i+s+x8vsk meiyouyudi@foxmail.com
The key's randomart image is:
+---[RSA 3072]----+
| . . .o o. |
| . . . +o. |
|. . ..o |
| .. + . .o . |
|. = . So o o |
| oo . .+ + o |
|+. . ..+.* o |
|= .+o+.O.o|
| o ..o. oEB|
+----[SHA256]-----+
meiyo@WIN-DC MINGW64 ~/Desktop/ultralytics (main)
$


二. 添加GitHub仓库
图示



前提设置
由于显示 “Everything up-to-date”,很可能数据已成功上传,只是确认信号丢失
- 设置超大缓冲区 1GB
git config --global http.postBuffer 1048576000
- 禁用速度限制超时
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 99999
第一部分:创建新仓库并推送
echo "# Ultralytics" >> README.md # 创建README文件并写入标题
git init # 初始化本地Git仓库
git add README.md # 将README.md添加到暂存区
git commit -m "first commit" # 提交更改到本地仓库
git branch -M main # 重命名当前分支为main(GitHub默认分支)
git remote add origin git@github.com:meiyouyudi/Ultralytics.git # 添加远程仓库地址
git push -u origin main # 推送本地main分支到远程仓库,并设置关联
关键步骤说明:
可添加多个远程仓库,譬如 github 与 gitee,把 origin 更名 github gitee方便区分。
origin 是远程仓库的别名,后续操作可用此简称
git@github.com… 使用 SSH 协议连接(需提前配置 SSH key)
git remote add github https://github.com/EliasJie/Payload.git
git remote add gitee https://gitee.com/meiyouyudi/Payload.git
- 检查远程仓库地址名称
git remote -v
- 查询 git 分支
git branch //只想查看本地分支
git branch -a //查看当前仓库的分支信息
git branch -v //查看每个分支的最后一次提交信息
git branch -av //查看所有分支(包括远程)以及它们的最后提交
- -u 参数建立本地分支与远程分支的跟踪关系,后续可直接用 git push
git push -u 远程仓库名称 git分支branch名称
第二部分:推送现有仓库
git remote add origin git@github.com:meiyouyudi/Ultralytics.git # 关联远程仓库
git branch -M main # 确保本地分支名为main
git push -u origin main # 推送并建立分支关联
- 适用场景:
当本地已有 Git 仓库(已包含代码文件并执行过 git init 和 git commit)时使用此流程。
- 分支重命名 (-M)
因历史原因,Git 默认分支名为 master,但 GitHub 现在使用 main 作为默认分支名。-M 强制重命名当前分支。
- 远程仓库别名 (origin)
这是远程仓库URL的简写标识符,推送/拉取时可代替完整URL。
- -u 参数的重要性
首次推送时使用 -u 后,后续在该分支只需执行:
git push # 自动推送到关联的远程分支
git pull # 自动从关联分支拉取
# 获取远程所有分支信息
git fetch origin
# 创建并切换到本地master分支,跟踪远程的origin/master
git checkout -b master origin/master
# 切换回main分支
git checkout main
# 执行重置操作,使main分支与master分支完全一致
git reset --hard master
# 强制推送到远程仓库
git push -f origin main
Git提交本地代码到Github仓库
远程克隆仓库到本地的文件夹再推送
之前写的
四. 克隆远程仓库 (核心操作)
现在写的

- 显示当前Github仓库的状态
git status
93254@WIN11DC MINGW64 ~/Desktop/OpenMV_Software (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
OpenMV peripheral/
Project/
ei_object_detection.py
labels.txt
nothing added to commit but untracked files present (use "git add" to track)
- 输入
git add .
git add .
- 输入
git commit -m 'first commits'第一次会让输入git的邮箱、用户名,输入一下
git commit -m 'First commits'
- 输入
git push将本地仓库中的提交(commits)推送到远程仓库
93254@WIN11DC MINGW64 ~/Desktop/OpenMV_Software (main)
$ git push
Enumerating objects: 65, done.
Counting objects: 100% (65/65), done.
Delta compression using up to 20 threads
Compressing objects: 100% (54/54), done.
Writing objects: 100% (64/64), 130.36 KiB | 379.00 KiB/s, done.
Total 64 (delta 2), reused 2 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (2/2), done.
To github.com:EliasJie/OpenMV_Software.git
3ebb816..004f36f main -> main
问题:如出现 error: failed to push some refs to
To github.com:EliasJie/Share-library.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'github.com:EliasJie/Share-library.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解决:先git pull,后git push
git pull
git push
93254@WIN11DC MINGW64 ~/Desktop/Share-library (main) $ git pull
remote: Enumerating objects: 5, done. remote: Counting objects: 100%
(5/5), done. remote: Compressing objects: 100% (2/2), done. remote:
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking
objects: 100% (3/3), 978 bytes | 81.00 KiB/s, done. From
github.com:EliasJie/Share-library 9da07f1…e3e8276 main ->
origin/main Merge made by the ‘ort’ strategy. README.md | 4 ++± 1
file changed, 3 insertions(+), 1 deletion(-)
93254@WIN11DC MINGW64 ~/Desktop/Share-library (main) $ git push
Enumerating objects: 19, done. Counting objects: 100% (15/15), done.
Delta compression using up to 20 threads Compressing objects: 100%
(9/9), done. Writing objects: 100% (9/9), 451.71 KiB | 1.29 MiB/s,
done. Total 9 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To github.com:EliasJie/Share-library.git e3e8276…e5746f1 main -> main
本地的无.git的文件夹上传到远程仓库
将本地仓库完全还原到远程仓库状态
要完全放弃本地所有修改,将仓库还原到与远程仓库完全一致的状态,请按照以下步骤操作:
- 获取远程最新信息
git fetch origin
- 重置本地分支到远程分支状态
git reset --hard origin/main
丢弃所有本地提交
重置所有已跟踪文件到远程仓库的状态
- 清理未跟踪的文件
git clean -fd
删除所有未跟踪的文件 (-f 强制删除,-d 包括目录)
移除所有不在版本控制中的文件
- 验证状态
git status
现在你的本地仓库应该完全与远程仓库一致,可以再次尝试拉取更新:
git pull
三. Git删除Github仓库或某个文件或文件夹
1.删除已有Github仓库
删除Github中没有用的仓库
进入到需要删除的仓库里面,找到“settings”即仓库设置,
然后,在仓库设置里拉到最底部,找到“Danger Zone”即危险区域,
点击“Delete this repository”这样就可以删除该仓库了。

2.删除Github中的某个文件或文件夹
我们知道,在Github上我们只能删除仓库,并不能删除文件或者文件夹,所以只能用命令来解决。
①如果没有建立本地库或者克隆远程库,需
-
新建文件夹
-
git bash here
在新建的文件夹里右键git bash here打开终端,并执行git init初始化仓库 -
git clone <你的地址>
找到github上要删除的仓库地址,并复制,在终端里输入git clone <你的地址>
②如果已经有建立本地库或者克隆远程库,需
- 要删除文件的库里右键git bash here打开终端


-
假如要删除GitHub的Project2此文件夹
-
在终端里输入dir查看此文件夹下的文件和目录(文件夹)

- 删除本地仓库文件 git rm ,filename是你要删除的文件名字
git rm <filename>
- 文件夹的删除和文件不一样,需要多一个参数,如下
删除本地仓库文件夹 git rm -r,filename是你要删除的文件夹名字
git rm -r <filename>
我们要删除GitHub的Project2此文件夹

- 将本地内容推送到远程仓库 git push
git commit -m "XXXX"

- 把删除的文件恢复到最新版本 git checkout
git checkout
- 将本地内容推送到远程仓库 git push
git push

删除总流程

刷新github仓库 就看见选定删除的文件夹没有了!!!大功告成!

四. Git 错误记录
- 错误
error: remote origin already exists.
git remote -v
git remote rm origin


- 我这里出现错误
fatal: unable to access ‘https://github.com/Noroom569/text.git/’: OpenSSL SSL_read: Connection was reset, errno 10054

git config --global http.sslVerify "false"

- 问题:如出现
error: failed to push some refs to ‘github.com:EliasJie/detectron2_tower.git’
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: ‘git pull’ before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.

这个错误再次出现是因为你的本地main分支仍然是非快速前进的推送(non-fast-forward),也就是说远程仓库的main分支有新的提交,而你的本地分支没有这些提交。你需要先拉取远程的更新,然后再尝试推送。你可以按照以下步骤操作:
拉取远程更新: 使用git pull命令将远程仓库的最新变更合并到你的本地main分支:
解决:先git pull,后git push
git pull origin main
git push



- 问题:如出现
fatal: ‘main’ does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

解决:
git remote -v
git remote rm origin
git remote add origin git@github.com:xxx.git

以后有问题继续扩充:

307

被折叠的 条评论
为什么被折叠?



