git rm --cached 命令如何解决疑难杂症

简介: git rm --cached 命令如何解决疑难杂症

诡异之事年年有,只是今年有点多,在仓库上传到 GitHub 后,偶然在 GitHub 中瞄了一眼,我的天?这个图标不像文件夹啊?这个怎么点不开?git 上传正常啊?本地工作区和暂存区都是干净的了啊?

一、问题描述

本地仓库提交后,GitHub 中某文件夹无法正常点击,内容无法显示。

二、原因分析

经排查,定位到原因:之前仓库中包含了一个特殊的文件夹(此文件夹是另外一个 git 仓库),在执行下面语句时:


git add .

提示仓库中包含其他仓库,需要解决此问题。本人操作是删除掉此文件夹中的 .git 配置目录,然后依次执行以下命令:

git add .
git commit -m 'add the new file'
git push

顺利推送仓库到远程,过程中并无报错。这个过程或许是导致问题的原因。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

三、解决办法

现在问题是本地工作区与暂存区干净如新,远程仓库有问题。该如何解决?这时用到了一个命令:


git rm --cached <dir_name>

我们先来看一下手册:

usage: git rm [<options>] [--] <file>...
    -n, --dry-run         dry run
    -q, --quiet           do not list removed files
    --cached              only remove from the index
    -f, --force           override the up-to-date check
    -r                    allow recursive removal
    --ignore-unmatch      exit with a zero status even if nothing matched

可以看到 --cached 的作用:将文件仅仅从索引中移除,翻译成人能看懂的话便是 「之前已经提交,现在将此目录释放掉,恢复到工作区,未被追踪的状态,即 git add . 命令之前的状态」

我们执行完此命令之后使用如下命令查看所有改变后的文件状态:

git status

发现出问题的目录已经变成了红色未被追踪的状态,此时将出问题的目录中所有包含 git 信息的文件和目录都删除,然后再依次执行命令:

git add .
git commit -m 'add the new file'
git push

去远程仓库中查看后发现问题解决。

四、总结

当出现未知问题致使远程仓库同预期结果不一致时,本地可以将问题目录恢复到未被追踪状态,核查完问题之后再次提交最新结果,操作步骤如下:

1.删除缓存,释放目录,恢复到未被追踪状态:


git rm --cached <dir_name>

2.依次执行如下操作再次提交:

git add .
git commit -m 'Information you need to submit'
git push

3.完美解决问题。

相关文章
|
11月前
|
开发工具 git
Git版本控制工具合并分支merge命令操作流程
通过以上步聚焦于技术性和操作层面指南(guidance), 可以有效管理项目版本控制(version control), 并促进团队协作(collaboration).
2709 15
|
安全 开发工具 git
git的常用操作命令
git的常用操作命令
774 57
|
人工智能 前端开发 Java
用git rebase命令合并开发阶段中多条commit提交记录
通过 `git rebase`,可以合并多个提交记录,使开发历史更简洁清晰。操作分为 6 步:查看提交历史 (`git log --oneline`)、设置需合并的提交数 (`git rebase -i HEAD~N`)、修改动作标识为 `s`(squash)、保存退出编辑、调整提交信息、强制推送至远程仓库 (`git push -f`)。此方法适合清理本地无关提交,但若有团队协作或冲突风险,需谨慎使用以避免问题。
2783 60
|
存储 项目管理 开发工具
Git常用命令及操作技巧
以上是Git的常用命令及操作技巧,尽管看起来有些繁琐,但实际上只要花费一些时间进行实践,您将很快熟练掌握。随着使用熟练度的提高,您会发现Git对项目管理和协同工作的强大帮助。
335 20
|
存储 缓存 开发工具
Git stash命令的详细使用说明及案例分析。
通过上述案例,我们看到stash命令能够在不丢失进度的情况下,帮助开发者临时切换开发上下文,这在处理多个任务或紧急bug时特别有用。正确使用Git stash可以大大提高开发的灵活性和效率。
2716 0
|
Linux 开发工具 git
版本控制工具:Git的安装和基本命令使用指南。
结束这段探险,掌握了Git你就等于掌握了一个宝藏,随时可以瞥见你的编程历程,轻松面对日后的挑战。Git,无疑是编程者的强大武器,开始你的Git探险之旅吧!
561 28
|
网络安全 开发工具 git
mac git clone命令提示git@gitee.com: Permission denied (publickey).问题修复
mac git clone命令拉取gitee上项目代码时提示密钥问题
1488 19
|
Java 网络安全 开发工具
Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
通过本文,读者可以深入了解Git的核心概念和实际操作技巧,提升版本管理能力。
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
546 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令