git - Git状态未检测到更改,但“git update-index --really-refresh”确实
问题描述
我的项目中有 3 个文件夹。其中 2 个用 检测到变化git status
,但第 3 个检测到变化,Server/
, 没有。
git update-index --no-assume-unchanged Server/
返回
Ignoring path Server/
奇怪的是,
git update-index --assume-unchanged Server/
返回
Ignoring path Server/
以及。
在 git status 之后,更改仍然不显示。但是,跑步会git update-index --really-refresh
显示它们;我怎样才能像平常一样git status
展示它们?
谢谢!
解决方案
以, like结尾的路径永远不能在索引中命名文件。这样的路径命名一个目录(或文件夹,如果您更喜欢该术语)。/
Server/
与许多面向用户的命令不同,git update-index
它是一个非常基本的管道命令,并且无法仅通过命名目录来操作目录中的所有文件。所以如果你给它一个目录的名字——即使是一个不存在的——它只会像上面一样抱怨:
$ git update-index --no-assume-unchanged abcdefg/
Ignoring path abcdefg/
尽管完全没有abcdefg/
文件,甚至没有abcdefg
目录:
$ file abcdefg/
abcdefg/: cannot open `abcdefg/' (No such file or directory)
如果您确实有文件Server/
并希望在索引中当前存在的这些文件的条目上设置这些索引标志,则必须单独命名每个此类文件:
$ git ls-files --stage builtin/
100644 dd18e5c9b67038307401e8d33970d5c424c03cb7 0 builtin/add.c
100644 761cac39e02a7f45dd7f95f05d31e0ad373be214 0 builtin/am.c
100644 da413ae0d178b53d6b1e6c193577c23923255245 0 builtin/annotate.c
100644 3f099b960565ff2944209ba514ea7274dad852f5 0 builtin/apply.c
[many more lines, snipped]
要设置或清除每个索引条目上的假设不变标志,您(或我)必须git update-index
为每个此类文件调用一次。有 112 个这样的文件,因此需要 112 次调用git update-index
.
(git update-index
通常直接使用它几乎总是表明您做错了什么。如果您设置了许多假设未更改的标志,那可能是真正的错误;您必须单独取消设置它们才能修复它。我做到了编写我自己的Python 脚本来处理这类事情,部分是作为实验,部分是在我处理经常设置和清除标志的糟糕情况时。现在总体情况已得到纠正,但我仍然有脚本。)
推荐阅读
- reactjs - reactjs函数中如何正确设置状态
- node.js - 使用 POST 从节点发送(响应)数据(Obj)到 Angular
- r - 比使用“for”循环更有效的方法
- android - INVALID_CLIENT spotify SDK android
- php - 如何在 php (Yii) 中连接两个下拉列表并搜索连接结果?
- python - Python中递归进入一个目录的每个子目录
- regex - 从 PowerShell 中的正则表达式搜索中获取一组捕获
- javascript - axios 取消的请求无法重启
- python - firebase python 管理员创建用户没有模块
- image - 如何在 xamarin 表单中为 XfxCardView 内的图像设置完美的圆角半径?