Ser*_*ich 5 git git-extensions
我同时使用Git扩展程序和命令行(我使用git-tfs,因此应使用命令行进行推送/提取)。
但是,如果我尝试在命令行未关闭Git Extensions窗口的情况下推送更改,则该操作通常会出错
fatal: Unable to create '.git/index.lock': File exists.
原因很明显-Git扩展会定期执行git status,从而创建锁定文件并阻止推送。
我找到了解决方案-在控制台中工作之前先关闭Git Extensions,但是它不太方便,我经常忘记了。
我还能在这里做什么?可能以某种方式禁用git状态的创建锁?
Git 2.14 已经建议对 进行后台刷新git status,Git 扩展最终可能会受益于:
请参阅Jeff King的提交 5e83cca(2017 年 11 月 27 日) ( )。(由Junio C Hamano 合并 -- --在提交 e6bf6af中,2017 年 12 月 13 日)peff
gitster
git-status.txt: 提到--no-optional-locks如果您在阅读文档时想到“我不希望 Git 对我的后台进程采取任何锁定”,那么您可能很容易
--no-optional-locks在git.txt.但遇到问题的特定实例是相当合理的:您有“
git status”在后台运行,并且您注意到它会导致与其他进程的锁争用。因此,您查看git-status.txt是否有办法禁用它,但没有提到该标志。让我们添加一个简短的注释,提及状态确实会触及索引(以及原因),并带有指向全局选项的指针。这可以为用户指明正确的方向,并帮助他们对要禁用的内容做出更明智的决定。
所以git status手册页现在显示为:
背景刷新
默认情况下,
git status会自动刷新索引,更新工作树中缓存的统计信息并写出结果。
写出更新的索引是一种并非严格必要的优化(status为自己计算值,但写出它们只是为了避免后续程序重复我们的计算)。
当status在后台运行时,写入期间持有的锁可能会与其他同步进程发生冲突,导致它们失败。在后台
运行的脚本应考虑使用.statusgit --no-optional-locks status
如果最后一句话可以在 Git 扩展中打包的嵌入式 Git 中找到,那就可以解决您的问题。
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |