git常见操作及问题

本文将持续更新遇见的所有报错...

一、 正常提交代码至远程仓库

最常用,适用于:已经在本地代码库中进行了修改的情况。

cpp 复制代码
1. 将修改添加到暂存区
git add .

2. 提交到本地仓库," "内为commit内容,最好为有意义的注释
git commit -m "commit内容"

3. 推送到远程仓库
注:现代仓库(如 GitHub)默认分支多为 main,老仓库为 master
git push origin master 

无法确保本地代码是基于远程最新版本开发的话,最好在执行上方代码前执行

cpp 复制代码
git pull

二、 初始化

适用于:本地已有代码,想将其上传到新建仓库

cpp 复制代码
1.初始化本地仓库
git init

2.关联远程地址
git remote add origin https://地址/用户名/仓库名.git

3.同步远程信息,如果远程仓库已经有 README 或 License,需要先拉取
git pull origin master

4.推送本地内容
git push -u origin master

三、 环境清理

创建并编辑 .gitignore 适用于:需要过滤add文件

**例子:**创建 .gitignore 文件,并写入需要忽略的路径:

cpp 复制代码
# 忽略所有 .log 文件
*.log

# 忽略 node_modules 文件夹
node_modules/

# 忽略编译后的产物
/dist
/build

四、 无法读取树变量报错

问题原因:目录索引卡(Index)或 .git 损坏

解决方式:删除损坏的索引文件或 .git 文件重新部署

4.1 索引文件问题

cpp 复制代码
rm -rf .git/index
git reset

然后再重新配置上传

4.2 .git文件损坏

4.1执行后还是无法解决的话可能是.git文件损坏,需要删除.git文件重新部署(删除前最好先备份重要文件)

cpp 复制代码
rm -rf .git

之后重新部署git

bash 复制代码
git init
git remote add origin git@gitee.com:你的用户名/仓库名.git
git pull origin master

详细部署git步骤可至博客https://blog.csdn.net/weixin_65182626/article/details/155993104?fromshare=blogdetail&sharetype=blogdetail&sharerId=155993104&sharerefer=PC&sharesource=weixin_65182626&sharefrom=from_link

然后正常提交

bash 复制代码
git add .
git commit -m "你的内容"
git push -u origin master

若以上过程出现其他错误,如:

  • git commit后发现提示修改了其他源文件
  • git push/git pull报错

最好使用4.3方法。

4.3 彻底解决.git损坏

适用于:以上方法都无法解决问题,出现报错

解决方法:将远程仓库中没有的文件先备份,然后删除现有目录所有内容重新部署.git,拉取远程仓库内容,再将新文件(未上传文件) 的备份拷贝至目录,最后正常上传

问题假设:在远程仓库中,有A、B、C文件,我当前目录中有A、B、C、D文件,D文件是我要上传的新文件(或者没有D,要上传的是修改后的A/B/C文件也同理)

步骤:

1.将需要上传的文件D进行备份(或者是有新修改的A/B/C)

bash 复制代码
cp -a ./D ../D.bak

2.彻底清空目录(远程仓库中的没有的文件一定要备份)

bash 复制代码
rm -rf ./* ./.??*    #隐藏文件也要删除

3.重新初始化.git目录

bash 复制代码
git init
git remote add origin git@gitee.com:你的用户名/仓库名.git
git pull origin master

4.将刚刚备份的新文件拷贝回当前目前目录

bash 复制代码
cp -a ../D.bak ./D

5.正常上传文件,问题解决

bash 复制代码
git add .
git commit -m "你的内容"
git push -u origin master
相关推荐
胖虎129 分钟前
Git 一个本地仓库同时推送到两个远程仓库(详细教程)
git·多远程仓库·双远程仓库·git双远程·git备份
HalvmånEver1 小时前
Linux:线程互斥
java·linux·运维
番茄灭世神1 小时前
Linux应用编程介绍
linux·嵌入式
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [drivers][mmc][mmc_sdio]
linux·笔记·学习
Forsete2 小时前
LINUX驱动开发#9——定时器
linux·驱动开发·单片机
森G2 小时前
七、04ledc-sdk--------makefile有变化
linux·c语言·arm开发·c++·ubuntu
驱动探索者2 小时前
linux mailbox 学习
linux·学习·算法
酉鬼女又兒3 小时前
每天一个Linux命令_printf
linux·运维·服务器
Trouvaille ~3 小时前
TCP Socket编程实战(三):线程池优化与TCP编程最佳实践
linux·运维·服务器·网络·c++·网络协议·tcp/ip
June`3 小时前
高并发网络框架:Reactor模式深度解析
linux·服务器·c++