Нашел что-то похожее здесь:
Как `git log --all` может пропустить точку фиксации?
... но это касается висячих коммитов,что не проблема у меня здесь.(это на git версии 2.17.1, Ubuntu 18.04)
По сути, я работал со скриптом, который автоматически создает небольшое репозиторий git с пустыми коммитами и фиксированными временными метками;Должно быть, я удалял и заново создавал этот репо как минимум 100 раз за вечер.
Примерно до 20 минут назад поведение было таким же - так выглядит вся история (ПРАВКА: добавлено --graph
,чтобы показать, что это простая линейная история, без разветвлений):
$ git --no-pager log --graph --all --pretty='%ad %cd %h'
* Wed Jul 4 16:56:04 2018 +0000 Wed Jul 4 16:56:04 2018 +0000 bec8f1c
* Wed Jul 4 16:10:24 2018 +0000 Wed Jul 4 16:10:24 2018 +0000 dd51181
* Wed Jun 20 18:31:47 2018 +0000 Wed Jun 20 18:31:47 2018 +0000 8b7ca2a
* Wed Jun 20 18:11:11 2018 +0000 Wed Jun 20 18:11:11 2018 +0000 9a32592
* Wed Jun 20 17:10:17 2018 +0000 Wed Jun 20 17:10:17 2018 +0000 2454ee0
* Wed Jun 20 16:56:22 2018 +0000 Wed Jun 20 16:56:22 2018 +0000 b77dee4
* Tue Jun 19 21:40:13 2018 +0000 Tue Jun 19 21:40:13 2018 +0000 c9dc470
* Tue Jun 19 19:20:31 2018 +0000 Tue Jun 19 19:20:31 2018 +0000 baceab3
* Tue Jun 19 18:30:11 2018 +0000 Tue Jun 19 18:30:11 2018 +0000 89ab6c2
* Tue Jun 19 17:35:19 2018 +0000 Tue Jun 19 17:35:19 2018 +0000 a95553d
* Thu Jun 14 10:01:05 2018 +0000 Thu Jun 14 10:01:05 2018 +0000 c61c8fc
* Thu Jun 14 09:19:41 2018 +0000 Thu Jun 14 09:19:41 2018 +0000 2046e07
* Thu Jun 14 08:26:38 2018 +0000 Thu Jun 14 08:26:38 2018 +0000 f205435
* Thu Jun 14 08:26:29 2018 +0000 Thu Jun 14 08:26:29 2018 +0000 d4c70f1
* Wed Jun 13 19:20:16 2018 +0000 Wed Jun 13 19:20:16 2018 +0000 28a5a55
Я получаю тот же вывод для git --no-pager log --all --pretty='%ad %h' --after 2018-06-13
(хотя "после" 2018-06-13 будет означать, что никакие коммиты с 2018-06-13 будет включено, но это не так: коммит "Ср Июн 13" по-прежнему будет указан с --after 2018-06-13
).
В любом случае, так что большую часть вечера --after 2018-06-14
начинался с Thu Jun 14 08:26:29
, и включает в себя все четыре коммита из Thu Jun 14
и все последующие;в основном это выглядело так:
$ git --no-pager log --all --pretty='%ad %h' --after 2018-06-14
Wed Jul 4 16:56:04 2018 +0000 bec8f1c
Wed Jul 4 16:10:24 2018 +0000 dd51181
Wed Jun 20 18:31:47 2018 +0000 8b7ca2a
Wed Jun 20 18:11:11 2018 +0000 9a32592
Wed Jun 20 17:10:17 2018 +0000 2454ee0
Wed Jun 20 16:56:22 2018 +0000 b77dee4
Tue Jun 19 21:40:13 2018 +0000 c9dc470
Tue Jun 19 19:20:31 2018 +0000 baceab3
Tue Jun 19 18:30:11 2018 +0000 89ab6c2
Tue Jun 19 17:35:19 2018 +0000 a95553d
Thu Jun 14 10:01:05 2018 +0000 c61c8fc
Thu Jun 14 09:19:41 2018 +0000 2046e07
Thu Jun 14 08:26:38 2018 +0000 f205435
Thu Jun 14 08:26:29 2018 +0000 d4c70f1
Однако за последние 20 минут он просто перестал возвращать Thu Jun 14 08:26:29
, Thu Jun 14 08:26:38
и Thu Jun 14 09:19:41
для одной и той же команды - так что теперь я получаю эффективноэто:
$ git --no-pager log --all --pretty='%ad %h' --after 2018-06-14
Wed Jul 4 16:56:04 2018 +0000 bec8f1c
Wed Jul 4 16:10:24 2018 +0000 dd51181
Wed Jun 20 18:31:47 2018 +0000 8b7ca2a
Wed Jun 20 18:11:11 2018 +0000 9a32592
Wed Jun 20 17:10:17 2018 +0000 2454ee0
Wed Jun 20 16:56:22 2018 +0000 b77dee4
Tue Jun 19 21:40:13 2018 +0000 c9dc470
Tue Jun 19 19:20:31 2018 +0000 baceab3
Tue Jun 19 18:30:11 2018 +0000 89ab6c2
Tue Jun 19 17:35:19 2018 +0000 a95553d
Thu Jun 14 10:01:05 2018 +0000 c61c8fc
Что случилось, почему эти коммиты больше не работают?Полагаю, было бы более понятно, если бы это был более крупный репо с большим количеством веток / участников и т. Д., Поэтому больше шансов достичь несовместимого состояния - но в этом случае в нем даже нет никакого контента, только пустые коммиты ?!И он даже не может прийти в какое-либо противоречивое состояние, потому что я продолжаю удалять его и воссоздавать из сценария ??? !!
Кто-нибудь знает, что может быть причиной этого, и как я могу получить gitчтобы снова показать все коммиты в четверг 14 июня с --after 2018-06-14
, как я получил с предыдущими вызовами этой команды?!
Кстати, в приведенном выше сообщении упоминается --full-history
, но это не тактут мало что поможет:
git --no-pager log --full-history --all --pretty='%ad %h' --after 2018-06-14
... возвращает те же самые результаты, которые я выложил выше для вызова без --full-history
.
РЕДАКТИРОВАТЬ: я могу вернуться к показу всехэти четыре коммита, если я использую --after '2018-06-14 00:00:00'
, но я на 100% уверен, что никогда не использовал эту команду в этой форме, пока не получил эту проблему.Может быть, если вы не укажете часы в --after
, git
может в конечном итоге назначить их случайным образом - и мне просто «повезло» большую часть ночи, если git
случайно выбрал 00:00:00
для заполнениявне часов?