gpt4 book ai didi

Git:不为只读操作创建 index.lock

转载 作者:IT王子 更新时间:2023-10-29 01:01:27 25 4
gpt4 key购买 nike

有没有办法强制 git 不为像 git status 这样的只读操作创建 index.lock?

我在 tmux 中显示我的工作树的状态,每两秒更新一次。基本上我解析了 git status --branch --ignored --porcelain 和其他一些命令的输出。问题是,对于大型存储库,git status 可能需要几秒钟才能完成。在那段时间里,我无法运行任何其他 git 命令,因为存储库已锁定。

编辑:

这是我的 tmux 系列相关部分的一些图片。符号说明从左到右:

与远程分支同步 | 2 阶段性变化 | 1 个未暂存的更改 | 5 个被忽略的文件 | 1 个存储条目: enter image description here

与远程分支同步 |工作树没有变化 | 5个被忽略的文件: enter image description here

通过 1 次提交领先远程分支 |工作树没有变化 | 5个被忽略的文件: enter image description here

最佳答案

使用“GIT_INDEX_FILE”环境变量让 git 使用另一个索引文件是什么意思?

因此,要从 HEAD 使用创建一个新的索引文件

GIT_INDEX_FILE=.git/other-index git reset

然后你就可以

GIT_INDEX_FILE=.git/other-index git status

查找更改。

它的缺点是,如果主索引将被 add/rm 命令修改,您将看不到真实状态。但至少它可以让您检测到变化的事实,然后可能会做更多的事情来找出真正的区别。

您能否再描述一下您正在努力实现的目标?也许我们可以想出一些其他的解决方案。

另一个想法。试试这个:

cp .git/index .git/other-index # or maybe just "ln" once, rather than copying everytime?
GIT_INDEX_FILE=.git/other-index git status

不确定这有多可靠...如果 cp 命令在您执行 git add/rm 时发生,您可能会“损坏”索引文件,显然失败了,但对于您的使用,我相信它已经足够好了 - 您可以忽略失败并重试。

关于Git:不为只读操作创建 index.lock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27706108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com