git сообщает о состоянии "Пока не зафиксировано" в существующем хранилище - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть Git-репозиторий для управления моим файлом инициализации emacs в течение некоторого времени.Сегодня как-то все пошло не так.Даже если коммитов много, git status сообщает: «Пока нет коммитов» и предлагает отследить «новый файл» init.el.Что не правильно.Действительно, отслеживаемый файл там нетронут, папка .git там тоже (предположительно, не повреждена), объекты есть, и файлы, которые я ожидаю там, есть.

Понятия не имеючто случилось.Я догадывался, что произошла неудачная ошибка файловой системы, из-за которой в этом репо появилась некоторая критическая информация.

На самом деле не существует проблемы потери данных, поскольку я восстановил ее из резервной копии (это был локальный репозиторий)., так что альтернативы клону назад нет, но резервное копирование выполнено).Но из того, что я читал о Git, я не ожидал этого.Я надеялся, что все будет более надежно.

Итак, я хотел бы знать две вещи.Что могло пойти не так с точки зрения Git?(немного информации об этом ниже).И как мне восстановить такое хранилище, если бы я не сделал свою резервную копию своевременно?

Что касается изменений в хранилище, я могу связать его с несколькими файлами:

enter image description here

Это скриншот с унисон-синхронизацией, который переходит из (хорошего) восстановленного репозитория в (плохую) более позднюю версию, которая была на моем внешнем жестком диске, поэтому «удалено»файлы, вероятно, являются коммитом, который пропустил моя резервная копия.В любом случае, хорошая версия и поврежденные отличаются только в этих файлах, все остальные идентичны.

Точнее, diff -bur dot-emacs "dot-emacs (corrompido)" дает мне:

diff -bur dot-emacs "dot-emacs (corrompido)"
diff -bur dot-emacs/.git/COMMIT_EDITMSG "dot-emacs (corrompido)/.git/COMMIT_EDITMSG"
--- dot-emacs/.git/COMMIT_EDITMSG   2019-02-19 19:33:23.000000000 -0300
+++ "dot-emacs (corrompido)/.git/COMMIT_EDITMSG"    2019-02-21 18:52:34.761102130 -0300
@@ -1,10 +1,8 @@
-Add make4ht intermediary files, to be cleaned
+Add LaTeX-item-regexp to safe local variables

 # Please enter the commit message for your changes. Lines starting
 # with '#' will be ignored, and an empty message aborts the commit.
 #
-# Date:      Mon Feb 18 10:10:12 2019 -0300
-#
 # On branch master
 # Changes to be committed:
 #  modified:   init.el
Binary files dot-emacs/.git/index and dot-emacs (corrompido)/.git/index differ
diff -bur dot-emacs/.git/logs/HEAD "dot-emacs (corrompido)/.git/logs/HEAD"
--- dot-emacs/.git/logs/HEAD    2019-02-19 19:33:23.000000000 -0300
+++ "dot-emacs (corrompido)/.git/logs/HEAD" 2019-02-21 18:52:34.793102485 -0300
@@ -295,3 +295,4 @@
 0c7b8edcde713c9792fc287c955c749769b440d8 2c5486c5c5cc6c45c0876a80ac51244dcd4f7c09 gusbrs <19410606+gusbrs@users.noreply.github.com> 1550495412 -0300   commit: Add make4ht intermediary files, to be cleaned
 2c5486c5c5cc6c45c0876a80ac51244dcd4f7c09 4ef5ff4538822082e8dd65d9251379e9be964cfc gusbrs <19410606+gusbrs@users.noreply.github.com> 1550578780 -0300   commit (amend): Add make4ht intermediary files, to be cleaned
 4ef5ff4538822082e8dd65d9251379e9be964cfc 3fc15187e0a6d3a12580c990b08e62e77bd24db7 gusbrs <19410606+gusbrs@users.noreply.github.com> 1550578790 -0300   commit (amend): Add make4ht intermediary files, to be cleaned
+3fc15187e0a6d3a12580c990b08e62e77bd24db7 0adb9ad30843f0cc7c48423ed0097a67c95add78 gusbrs <19410606+gusbrs@users.noreply.github.com> 1550753569 -0300   commit: Add LaTeX-item-regexp to safe local variables
diff -bur dot-emacs/.git/logs/refs/heads/master "dot-emacs (corrompido)/.git/logs/refs/heads/master"
--- dot-emacs/.git/logs/refs/heads/master   2019-02-19 19:33:23.000000000 -0300
+++ "dot-emacs (corrompido)/.git/logs/refs/heads/master"    2019-02-21 18:52:34.797102530 -0300
@@ -275,3 +275,4 @@
 0c7b8edcde713c9792fc287c955c749769b440d8 2c5486c5c5cc6c45c0876a80ac51244dcd4f7c09 gusbrs <19410606+gusbrs@users.noreply.github.com> 1550495412 -0300   commit: Add make4ht intermediary files, to be cleaned
 2c5486c5c5cc6c45c0876a80ac51244dcd4f7c09 4ef5ff4538822082e8dd65d9251379e9be964cfc gusbrs <19410606+gusbrs@users.noreply.github.com> 1550578780 -0300   commit (amend): Add make4ht intermediary files, to be cleaned
 4ef5ff4538822082e8dd65d9251379e9be964cfc 3fc15187e0a6d3a12580c990b08e62e77bd24db7 gusbrs <19410606+gusbrs@users.noreply.github.com> 1550578790 -0300   commit (amend): Add make4ht intermediary files, to be cleaned
+3fc15187e0a6d3a12580c990b08e62e77bd24db7 0adb9ad30843f0cc7c48423ed0097a67c95add78 gusbrs <19410606+gusbrs@users.noreply.github.com> 1550753569 -0300   commit: Add LaTeX-item-regexp to safe local variables
Only in dot-emacs (corrompido)/.git/objects/0a: db9ad30843f0cc7c48423ed0097a67c95add78
Only in dot-emacs (corrompido)/.git/objects/43: b802457cc9ab2d15146fbaf5711e76d0b11f6f
Only in dot-emacs (corrompido)/.git/objects/56: 49d3b00a4c1721287df6de1b8bfde1cf909089
diff -bur dot-emacs/.git/refs/heads/master "dot-emacs (corrompido)/.git/refs/heads/master"
--- dot-emacs/.git/refs/heads/master    2019-02-19 19:33:23.000000000 -0300
+++ "dot-emacs (corrompido)/.git/refs/heads/master" 2019-02-21 18:52:34.801102573 -0300
@@ -1 +0,0 @@
-3fc15187e0a6d3a12580c990b08e62e77bd24db7
diff -bur dot-emacs/init.el "dot-emacs (corrompido)/init.el"
--- dot-emacs/init.el   2019-02-19 19:33:23.000000000 -0300
+++ "dot-emacs (corrompido)/init.el"    2019-02-21 18:52:34.813102706 -0300
@@ -105,6 +105,7 @@
 (add-to-list 'safe-local-variable-values '(outline-hide-sublevels 1) t); overview
 (add-to-list 'safe-local-variable-values '(eval outline-hide-body) t); contents
 (add-to-list 'safe-local-variable-values '(eval outline-show-all) t); showall
+(add-to-list 'safe-local-variable-values '(LaTeX-item-regexp . "\\(bib\\)?item\\b\\|texto\\b") t)

 ;; Don't ask for confirmation for "confusing" commands
 (put 'dired-find-alternate-file 'disabled nil)

У меня все еще есть испорченная версия репозитория для игры.

1 Ответ

0 голосов
/ 23 февраля 2019

Вы можете воспроизвести этот симптом с помощью >.git/refs/heads/master, затем, например, наберите git status, чтобы увидеть то, что вы видели раньше.

Исправьте это с помощью

tail -1 .git/logs/refs/heads/master \
| cut -d' ' -f2 >.git/refs/heads/master

Что-то урезало этот файл, тот, который использует git для хранения активной ссылки на ветвь главной ветки (неактивные ссылки в конечном итоге обычно упаковываются в .git/packed-refs).Трудно сказать, что сделал, самая правдоподобная опечатка, которую я могу себе представить, это было бы желание набрать $project/.git/refs/heads/master и каким-то образом набрать $project>.git/refs/heads/master.Я знаю, что это выглядит не слишком вероятным, но что бы ни случилось, вы вряд ли это обнаружите, вы можете запустить со всеми включенными аудитами управления / безопасности, а затем, если это когда-нибудь случится снова, покопаться в журналах аудита, чтобы точно узнатькто к чему прикоснулся(У мэйнфреймов есть журнал «средства управления системой», в котором регистрируется все доступ к набору данных, и тому подобное - одна из причин, по которой существуют библиотеки магнитных лент роботов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...