当前位置: 首页 > article >正文

Git文件夹提交错了,怎么撤销?

最近提交了一些不应该提交的文件夹到git中,现在需要移除它们,现在简单记录一下操作日志:

情况一

文件夹已经被添加到 Git,但未提交

如果文件夹已经被 git add 添加到暂存区中,但尚未提交,你可以使用以下命令将其从暂存区中移除:

git rm -r --cached <folder-name>

示例:

git rm -r --cached wrong-folder

效果:

  • 文件夹会从 Git 的暂存区中移除,但仍然保留在本地文件系统中。

如果操作正确,你就可以提交更改:

git commit -m "Remove wrong-folder from Git tracking"

情况二

如果文件夹已经被提交到 Git 仓库中,你需要从 Git 的历史记录中移除它:

步骤1:

使用以下命令将文件夹从 Git 仓库中移除:

git rm -r <folder-name>
步骤2:

将移除文件夹的操作提交到仓库:

git commit -m "Remove wrong-folder from Git repository"
步骤3:

将更改推送到远程仓库:

git push origin <branch-name>

情况三

只想停止跟踪某个文件夹,但保留本地文件夹

如果你希望 Git 停止跟踪某个文件夹,但不想删除本地文件夹,可以使用以下方法:

步骤1:

从 Git 中移除文件夹的跟踪

git rm -r --cached <folder-name>
步骤2:

将文件夹添加到 .gitignore 文件
为了防止文件夹再次被添加到 Git,请将它添加到 .gitignore 文件中。

echo "wrong-folder/" >> .gitignore
步骤3:

提交更改
提交 .gitignore 的更改以及停止跟踪的操作:

git add .gitignore
git commit -m "Ignore wrong-folder and stop tracking it"
步骤4:

推送更改到远程仓库

git push origin <branch-name>

情况四

文件夹已经被添加到远程仓库,但需要从整个仓库历史中移除

如果你想彻底从 Git 仓库中删除某个文件夹(包括所有提交历史),可以使用以下方法:
使用 git filter-repo:

  1. 确保安装了 Git 的 filter-repo 工具(取代了旧的 git filter-branch)。
  2. 使用以下命令彻底移除文件夹:
git filter-repo --path <folder-name> --invert-paths

总结:

场景解决方法
文件夹被 git add,但未提交git rm -r --cached
文件夹已经提交到仓库中git rm -r 然后提交更改
停止跟踪文件夹,但保留在本地文件系统中git rm -r --cached + 添加到 .gitignore
文件夹需要从整个历史记录中移除使用 git filter-repo 或类似工具

http://www.kler.cn/a/505913.html

相关文章:

  • ASP.NET Core - IStartupFilter 与 IHostingStartup
  • 响应式 Vue 页面布局组件-Element Plus
  • 微服务之松耦合
  • docker swarm 部署问题 和 指定节点部署服务
  • Unity中实现倒计时结束后干一些事情
  • 浅谈云计算15 | 存储可靠性技术(RAID)
  • R语言的数据库交互
  • 回归预测 | MATLAB实MLR多元线性回归多输入单输出回归预测
  • Windows图形界面(GUI)-QT-C/C++ - QT信号与槽机制详解
  • Flutter中Get.snackbar和Get.dialog关闭冲突问题记录
  • C51交通控制系统的设计与实现
  • 算法3(力扣83)-删除链表中的重复元素
  • 金融数据下载
  • 启动项目报JVM初始化错误
  • United States of America三种表示
  • C++单例模式的设计
  • Tidb集群升级到8.5.0过程中服务器遇到的坑
  • rtthread学习笔记系列--32 ULOG
  • 数据结构与算法之链表: LeetCode 146. LRU 缓存 (Ts版)
  • 赛灵思(Xilinx)公司Artix-7系列FPGA
  • HP_SNMP - ilo4服务器监控指标解读
  • 数据可视化如何推动文旅行业的创新与发展
  • HTML中如何保留字符串的空白符和换行符号的效果
  • 关于SQL注入的面试题及经验分享(附视频教程)
  • 【刷题】【力扣】【178】【中等】分数排名
  • C# 25Dpoint