7

我正在构建一个处理传入文件包的东西,但是我有一个相当严重的问题,即我无法清理传入的数据,直到它能够中断处理,并且它破坏它的方式是简单地重新启动进程不修复它。

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

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

4

4 回答 4

7

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

set GIT_ASK_YESNO=false

然后,当我收到与警告相同的消息时,它会继续,就好像我说不一样。

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

于 2018-10-30T19:29:59.163 回答
1
yes no | git clean -fdx

yes nono永远输出并通过管道输入git clean导致每个提示都以no.

于 2019-01-17T00:37:30.230 回答
0

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

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

于 2013-10-28T08:25:28.210 回答
0

免责声明,我不认识 Ruby。

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

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

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

我将以下内容添加到我的命令中:

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

而且,它似乎有效。

于 2014-10-08T20:58:17.450 回答