检测git

时间:2015-06-22 08:24:33

标签: git

我有一些错误的第三方脚本,它会生成一些文件,我想放入 git 。现在,脚本确实工作得很好,但有时会失败并删除文件(我知道这很糟糕,......)。

现在,我想检测一下,当文件删除被添加到索引并过滤掉时。我能想出的唯一解决方案是git diff并搜索deleted file mode并回溯到路径。但这看起来确实很难看。

有更好的过滤方法吗?

1 个答案:

答案 0 :(得分:1)

请注意,简单的git add只会添加新文件或已修改的文件,而不会删除已删除的文件 为此,您需要git add -u or git add -A

这意味着可以考虑在您的脚本和提交之后仅执行<E extends Exception>
然后public final class LambdaExceptionUtil { @FunctionalInterface public interface Function_WithExceptions<T, R, E extends Exception> { R apply(T t) throws E; } /** * .map(rethrowFunction(name -> Class.forName(name))) or .map(rethrowFunction(Class::forName)) */ public static <T, R, E extends Exception> Function<T, R> rethrowFunction(Function_WithExceptions<T, R, E> function) throws E { return t -> { try { return function.apply(t); } catch (Exception exception) { throwActualException(exception); return null; } }; } @SuppressWarnings("unchecked") private static <E extends Exception> void throwActualException(Exception exception) throws E { throw (E) exception; } } public class LambdaExceptionUtilTest { @Test public void testFunction() throws MyTestException { List<Integer> sizes = Stream.of("ciao", "hello").<Integer>map(rethrowFunction(s -> transform(s))).collect(toList()); assertEquals(2, sizes.size()); assertEquals(4, sizes.get(0).intValue()); assertEquals(5, sizes.get(1).intValue()); } private Integer transform(String value) throws MyTestException { if(value==null) { throw new MyTestException(); } return value.length(); } private static class MyTestException extends Exception { } } 将恢复所有已删除的文件。