Ви можете бачити звисання комітетів git log -g
.
-g, --walk-reflogs
Instead of walking the commit ancestry chain, walk reflog entries from
the most recent one to older ones.
Таким чином, ви можете зробити це, щоб знайти певний рядок у повідомленні про фіксацію, яке звисає:
git log -g --grep=search_for_this
Крім того, якщо ви хочете шукати зміни в певній рядку, ви можете скористатись опцією пошуку pickaxe, "-S":
git log -g -Ssearch_for_this
# this also works but may be slower, it only shows text-added results
git grep search_for_this $(git log -g --pretty=format:%h)
Git 1.7.4 додасть параметр -G , що дозволить вам передати -G <regexp>, щоб знайти, коли перенесено рядок, що містить <regexp>, що -S не може зробити. -S повідомить вам лише про зміну загальної кількості рядків, що містять рядок (тобто додавання / видалення рядка).
Нарешті, ви можете використовувати gitk для візуалізації звисаючих комісій за допомогою:
gitk --all $(git log -g --pretty=format:%h)
А потім скористайтеся його пошуковими функціями, щоб шукати неправильно розміщений файл. Усі ці роботи, припускаючи, що відсутні документи не закінчилися, і зібрали сміття, що може статися, якщо воно бовтається протягом 30 днів, і ви закінчуєте відкладати чи виконувати команду, яка їх закінчує.