[英]Non-interactive “git clean -fdx”
我正在构建一个处理传入文件包的东西,但是我有一个相当严重的问题,我无法清理传入的数据,直到它处于打破处理的位置,并且它打破了这样一种方式,只需重新启动进程不解决它。
我目前最好的解决方案是git clean -fdx
和git 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.