Nat*_*ger 3 git bash file-permissions command-prompt
我有一个 PROMPT_COMMAND,它使用 git status 显示 git 分支信息,不幸的是,当调用 'git status' 时,它似乎正在修改 .git/index 文件。
这不好,因为如果您与对目标目录具有权限的用户一起运行(例如在共享文件系统上或者如果您作为特权帐户运行) - 它最终将该文件的所有权更改为您的用户因为 git 似乎正在重新创建 .git/index 文件。
有什么方法可以运行“git status”来防止它修改 .git/index 文件?
如果您的 Git 版本至少为 2.15,请运行git --no-optional-locks status. 请参阅提交 27344d6a6c8056664966e11acf674e5da6dd7ee3,其中添加了此新选项。
否则,如果你能在运行前确保索引是最新的git status,git status就不会再次更新它;但这有点棘手。或者,您可以暂时将git索引设为只读 — 但这会干扰并行运行的其他命令 — 或者您可以将索引复制到临时目录并git status使用GIT_INDEX_FILEset 为临时目录的路径名运行,然后删除临时目录。最后一个很笨拙,但可以与历史悠久的 Git 一起使用。
(顺便说一句,我没有git status从我自己的手动构建状态的 bash 提示代码运行,虽然它不是专门出于这个原因。相反,我运行了一个显式的git update-index,你可以以性能为代价省略它,也许基于$PWD.)
| 归档时间: |
|
| 查看次数: |
1454 次 |
| 最近记录: |