我正在构建一个处理传入文件包的东西,但是我有一个相当严重的问题,即我无法清理传入的数据,直到它处于打破处理的位置,并且它打破了这样一种简单的方式重新启动该过程并不能解决问题。
我目前的最佳解决方案是git clean -fdx
和git checkout .
该流程使用的项目目录,其功能类似于魅力,除了,有时git clean
会要求用户输入(“无法取消链接文件。重试?”),这会导致自动化问题。
有没有办法让Git进入非交互模式?我需要在Windows机器上从Ruby内部执行此操作。
答案 0 :(得分:2)
yes no | git clean -fdx
yes no
永远输出no
,并通过管道传输到git clean
中,使每个提示都被no
回答。
答案 1 :(得分:1)
对于Windows,这是对我有用的方法(将GIT_ASK_YESNO环境变量设置为false,从而阻止git询问是不是问题):
set GIT_ASK_YESNO=false
然后,当我收到与警告相同的消息时,就像我拒绝了一样继续。
所以git clean -fdx
对我有效,没有阻碍。
答案 2 :(得分:0)
这通常是因为其他进程保留了那些“不能不喜欢”的文件句柄(如“Cannot unlink a file in PHP/Windows”中所述)。
这意味着您的自动作业必须确保在更新工作目录之前首先停止/终止所有正在运行的进程。
答案 3 :(得分:0)
免责声明,我不了解Ruby。
根据documentation,还没有编写方法来杀死所有仍在运行的服务(这可能是最佳路径,具体取决于您的解决方案以及为了测试它而需要清理的内容)这个命令似乎我们希望最好的是制作一个总是导致[Y/n]
提示的文件的候选名单。
所以,当我看到以下内容时:
文件' packages / RavenDB.Server.2.5.2851 / tools / blahblahblah的取消链接失败。
我在命令中添加以下内容:
git clean -fdx --exclude=/packages/RavenDB.Server.2.5.2851**
而且,似乎有效。