我有一个提示_command使用git状态显示git分支信息,不幸的是,当调用'git状态'时,它似乎正在修改.git/index文件。
这不好给您的用户,因为Git似乎正在重新创建.git/index文件。
是否有任何方法可以运行" git状态",以防止其修改.git/index文件?
如果您的git版本至少为2.15,则运行git --no-optional-locks status
。请参阅COMMIT 27344D6A6C8056664966EACF674E5DA6DD7EE3,添加了此新选项。
否则,如果您可以在运行git status
之前确保索引是最新的,则git status
将不会再次更新。但这有点棘手。另外,您可以暂时使索引只读索引 - 但这将干扰其他git
并行运行的CC_4命令,或者可以将索引复制到临时索引并以GIT_INDEX_FILE
设置为临时路径名,然后删除暂时的。最后一个很笨拙,但会与历史git一起工作。
(顺便说一句,我不从自己的手卷状态构建的bash提示代码运行git status
,尽管不是专门为此原因。相反,我运行一个明确的git update-index
性能,也许基于$PWD
。)
运行git status
不修改索引文件。
$ ls -l .git/index
-rw-r--r-- 1 adelsbergerm 1049089 445386 Jul 11 15:07 .git/index
$ git status
On branch REDACTED
Your branch is ahead of 'origin/REDACTED' by 211 commits.
(use "git push" to publish your local commits)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: REDACTED
no changes added to commit (use "git add" and/or "git commit -a")
$ ls -l .git/index
-rw-r--r-- 1 adelsbergerm 1049089 445386 Jul 11 15:07 .git/index
您的主张还怀疑修改文件将更改所有权。
我想您 没有人听说阅读文件会自动写入其中并写入文件自动声称其所有权,但除非看来这些是观察错误,否则您需要在其他地方寻找问题。