Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
期刊背景';git状态';Git中的扩展会干扰交互工作_Git_Git Extensions - Fatal编程技术网

期刊背景';git状态';Git中的扩展会干扰交互工作

期刊背景';git状态';Git中的扩展会干扰交互工作,git,git-extensions,Git,Git Extensions,我同时使用Git扩展和命令行(我使用Git tfs,所以应该使用命令行进行推送/获取) 但是,如果我尝试在没有关闭Git Extensions窗口的情况下从命令行推送更改,它通常会以错误结束 fatal:无法创建“.git/index.lock”:文件存在。 原因显而易见-Git扩展定期执行Git状态,这会创建锁文件并阻止推送 我在控制台中工作之前找到了解决方案——关闭Git扩展,但它不是很方便,而且我经常忘记它 我还能在这里做什么?是否可能会以某种方式禁用git状态的创建锁?git 2.14已

我同时使用Git扩展和命令行(我使用Git tfs,所以应该使用命令行进行推送/获取)

但是,如果我尝试在没有关闭Git Extensions窗口的情况下从命令行推送更改,它通常会以错误结束

fatal:无法创建“.git/index.lock”:文件存在。

原因显而易见-Git扩展定期执行Git状态,这会创建锁文件并阻止推送

我在控制台中工作之前找到了解决方案——关闭Git扩展,但它不是很方便,而且我经常忘记它


我还能在这里做什么?是否可能会以某种方式禁用git状态的创建锁?

git 2.14已经建议对
git状态进行后台刷新,可能最终受益于:

参见。
(于2017年12月13日被合并)

git status.txt
:提及
--无可选锁

如果您在文档中想到“我不希望Git为我的后台进程使用任何锁”,那么您可能很容易在
Git.txt
中遇到“
--无可选锁”

但是,找到问题的一个特定实例是非常合理的:您在后台运行“
git status
”,并且您注意到它会导致与其他进程的锁争用。因此,您可以查看
git status.txt
,看看是否有办法禁用它,但没有提到该标志

让我们添加一个简短的注释,指出状态确实如此 用指向全局选项的指针触摸索引(以及原因)。这可以为用户指明正确的方向,并帮助他们对禁用的内容做出更明智的决定

因此,现在的标题是:

背景刷新 默认情况下,
git status
将自动刷新索引,更新 从工作树中缓存stat信息并写出 结果。
写出更新后的索引是一种优化,但不是 严格必要的
状态
为自身计算值,但写入 删除它们只是为了避免后续程序重复我们的操作 计算)。
状态
在后台运行时,写入过程中持有的锁可能与其他同步进程冲突,导致它们失败。
<强>在后台运行<代码>状态< /代码>的脚本应考虑 使用
git--无可选锁状态


如果最后一句话可以在Git扩展中打包的嵌入式Git中找到它的方式,那将解决您的问题。

而问题是由Git状态锁定引起的,它还可以通过更改Git扩展的设置来缓解,而无需在选择在其他地方执行Git工作之前关闭Git扩展:我的大部分工作都是在“其他地方”完成的,因此关闭Git扩展不是一个有趣的长期策略:}

从此-

对于任何遇到索引锁相同问题的人,都有一个解决方法[by]

  • 禁用设置->Git扩展->性能->显示更改的文件数
[…]这样Git扩展就不会在任何文件更新时调用Git status,这会阻止当前处理Git命令并引入锁

希望这对你们有帮助