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
相关推荐
叹一曲当时只道是寻常2 分钟前
Reference 工具安装与使用教程:一条命令管理 Git 仓库引用与知识沉淀
人工智能·git·ai·开源·github
洛洛呀。9 分钟前
Kali系统桥接模式下相关网络故障
linux·服务器·桥接模式
李日灐18 分钟前
<4>Linux 权限:从 Shell 核心原理 到 权限体系的底层逻辑 详解
linux·运维·服务器·开发语言·后端·面试·权限
寒秋花开曾相惜21 分钟前
(学习笔记)4.1 Y86-64指令集体系结构(4.1.6 一些Y86-64指令 )
linux·运维·服务器·开发语言·笔记·学习·安全
freewlt23 分钟前
TypeScript 5.5 新特性深度解析:类型系统的又一次进化
linux·ubuntu·typescript
сокол25 分钟前
【网安-Web渗透测试-Linux提权】SUID提权
linux·前端·web安全·网络安全
誰能久伴不乏27 分钟前
Qt 混合编程核心原理:C++ 与 QML 通信机制详解
linux·c++·qt·架构·状态模式
运维小斌28 分钟前
麒麟v10arm使用dnsmasq部署本地DNS服务器
linux·运维·服务器·网络
佳xuan40 分钟前
wsl(linux)安装miniconda及虚拟环境
linux·人工智能·conda
召田最帅boy43 分钟前
一次OOM排查实录
linux·jvm·spring boot·adb