Мне нужно использовать git filter-branch
, чтобы переписать историю хранилища.Кажется, что какую бы команду filter-branch я ни пробовал, она складывается в один конкретный коммит с пустой ошибкой имени пользователя.Например:
git filter-branch --tree-filter 'rm -f -R a_folder' -- --all
дает
Rewrite 1acdc25e87c404e974610b9517f62b4127c3ccac (1574/3846) (43 seconds passed, remaining 62 predicted)
fatal: empty ident name (for <>) not allowed
could not write rewritten commit
Если я тогда сделаю:
git show 1acdc25e87c404e974610b9517f62b4127c3ccac
Я получу следующее:
commit 1acdc25e87c404e974610b9517f62b4127c3ccac
Author: <>
Date: Mon Apr 27 19:31:42 2015 +0100
My Commit comment
diff --git a/file.cpp b/file.cpp
index 4db77cf..21b6fc0 100644
--- a/file.cpp
+++ b/file.cpp
@@ -50,6 +50,20 @@ E-mail: myEmail@mydomain.com
...Things I modified...
Так что, похоже, проблема заключается в том, что имя коммиттера пусто.Однако, если я посмотрю на исходный коммит, который переписывается здесь (таким образом, с тем же комментарием и модификациями), я вижу, что имя и адрес электронной почты коммиттера в порядке:
commit a1aa0612f35af3acf376938d355da0ecca6376a6
Author: My Name <myEmail@mydomain.com>
Date: Mon Apr 27 19:31:42 2015 +0100
My Commit comment
Я использую gitверсия 2.7.4 в Ubuntu 16.04.4.
Некоторое время назад я без проблем выполнил операции перезаписи в этом же хранилище.Только на другой машине, к которой у меня больше нет доступа.
Возможно ли столкнуться с ошибкой в этой версии git?Любая идея о том, как устранить проблему?Конечно, я пытался искать помощь в Интернете, но пока не смог найти никого, кто сталкивался бы с чем-либо подобным.