繁体   English   中英

非交互式“git clean -fdx”

[英]Non-interactive “git clean -fdx”

我正在构建一个处理传入文件包的东西,但是我有一个相当严重的问题,我无法清理传入的数据,直到它处于打破处理的位置,并且它打破了这样一种方式,只需重新启动进程不解决它。

我目前最好的解决方案是git clean -fdxgit checkout . 进程使用的项目目录,就像一个魅力, 除了有时git clean要求用户输入(“无法取消链接文件。重试?”),这会导致自动化问题。

有没有办法让Git进入非交互模式? 我需要在Windows机器上从Ruby内部执行此操作。

对于Windows,这对我有用(将GIT_ASK_YESNO环境变量设置为false,停止git询问是 - 否问题):

set GIT_ASK_YESNO=false

然后,当我收到与警告相同的消息但它继续,好像我说不。

所以git clean -fdx按预期git clean -fdx工作而不会阻塞。

yes no | git clean -fdx

yes no输出no永远和管道进入git clean导致每个提示回答no

这通常是因为其他进程保留了那些“不能不喜欢”的文件句柄(如“ 无法在PHP / Windows中取消链接文件 ”中所述)。

这意味着您的自动化作业必须确保在更新工作目录之前首先停止/终止所有正在运行的进程。

免责声明,我不知道Ruby。

根据文档 ,并没有编写一种方法来杀死所有仍在运行的服务(这可能是最好的路径,取决于你的解决方案和你需要清理什么来测试它),我们看起来最好希望使用此命令是列出始终导致[Y/n]提示的文件的列表。

所以,当我看到以下内容时:

文件'package / RavenDB.Server.2.5.2851 / tools / blahblahblah的取消链接失败。

我在命令中添加以下内容:

git clean -fdx --exclude=/packages/RavenDB.Server.2.5.2851**

而且,它似乎工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM