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
相关推荐
Johny_Zhao13 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
闲云一鹤1 天前
Git LFS 扫盲教程 - 你不会还在用 Git 管理大文件吧?
前端·git·前端工程化
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash3 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI3 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
vibecoding日记4 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
十日十行4 天前
Linux和window共享文件夹
linux