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
相关推荐
AlfredZhao6 小时前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐1 天前
Linux内存扩容指南
linux
zylyehuo2 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
嘻嘻仙人3 天前
Ubuntu中 git上传自己的项目和二次上传一般流程
git·github
Patrick_Wilson3 天前
Squash Merge 的血缘陷阱:为什么删掉的代码又活了过来
前端·git·程序员
沉浸学习的匿名网友3 天前
什么是 .gitignore?为什么每个 Git 项目几乎都离不开它?
前端·git
深海鱼在掘金4 天前
Git 完全指南 —— 第3章:理解工作区、暂存区、版本库三个核心
git
Web3探索者4 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh