Git: что такое оборванное commit/blob и откуда они взялись?
Я ищу основную информацию об оборванных коммандах и блоках.
Мое репо кажется прекрасным. Но я впервые запустил git fsck
, чтобы увидеть, что он сделал, и у меня есть длинный список "оборванных blobs" и единственная "оборванная фиксация".
Что это за вещи? Откуда они пришли? Указывают ли они что-либо необычное (хорошее или плохое) о состоянии моего репо?
Ответы
Ответ 1
Во время работы с вашим репозитаром git вы можете завершить работу и сделать другие шаги, которые вызывают промежуточные капли, и даже некоторые вещи, которые git делает для вас, чтобы избежать потери информации.
В конце концов (условно, согласно git странице gc man), он будет выполнять сборку мусора и очищать эти вещи. Вы также можете заставить его, вызвав процесс сбора мусора, git gc
.
Для получения дополнительной информации об этом см. Обслуживание и восстановление данных на сайте git -scm.
Ручной запуск GC по умолчанию оставляет за 2 недели до времени выполнения этой команды защитной сетки. На самом деле рекомендуется периодически запускать GC, чтобы обеспечить эффективное использование репозитория git. Как ничто, однако, вы должны понимать, что он делает, прежде чем уничтожить те вещи, которые могут быть важны для вас.
Ответ 2
Dangling blob= изменение, которое попало в промежуточную область/индекс, но никогда не было зафиксировано. Одна вещь, которая поразительна с помощью git, заключается в том, что после того, как она добавляется в промежуточную область, вы всегда можете ее вернуть, потому что эти капли ведут себя так же, как и в том, что они тоже имеют хэш!!
Dangling commit= фиксация, которая не связана ни с какой веткой или тегом напрямую или с каким-либо из ее потомков. Вы также можете получить их обратно!
Ответ 3
HOWTO удалите все оборванные коммиты из репозитория git из
http://www.tekkie.ro/news/howto-remove-all-dangling-commits-from-your-git-repository/
git reflog expire --expire=now --all
git gc --prune=now
Убедитесь, что вы действительно хотите удалить их, поскольку вы можете решить, что они вам нужны.