Reflog содержит записи для ссылок ... а не индекс.
Но, возможно, настройка рабочего процесса - это ответ здесь ... (это было для меня).
При работе над чем-то, что занимает больше 5-10 минут, совершить как-вы-гоу (и очистку перед нажатием). В противном случае, stage-as-you-go.
index
большой ... я использую его весь день! Но я действительно использую это только в том случае, если знаю, что я буду совершать всего одну минуту или две (в основном, операцию атомного рабочего процесса). Это потому, что я боюсь, что сделаю что-то глупое и сдую свой индекс.
В то время как я работаю, каждый раз, когда я достигаю небольшого рубежа, я делаю частную фиксацию, которая обычно не будет нажата, пока у меня не будет возможности сделать некоторую очистку в первую очередь. Я продолжаю заниматься, когда я работаю над этой конкретной проблемой, обычно исправляя.
Затем, как только я на самом деле достиг стабильной точки, где хочу создать публичный коммит, я сквошу (если нужно), все мои маленькие wip совершают вместе, дают хорошее сообщение фиксации и нажмите.
Это дает огромное преимущество создания маленьких панировочных сухарей в моем рефлоге, если это необходимо.
Вот мой рабочий процесс:
# start work
git checkout -b featurea
# work
vim file.txt
# reach a little milestone
git commit -a -m "working on feature..."
# work some more
vim file.txt
# reach another little milestone
git commit -a --reuse-message=HEAD --amend
# work some more
vim file.txt
# another little milestone...
git commit -a --reuse-message=HEAD --amend
# finishing touches...
vim file.txt
# ok, done now, put everything back in working dir so I can review
git reset HEAD~
# decide what goes in this commit
# perhaps use `git add -p`
git add file.txt
# give a nice commit message (use editor)
git commit
# now merge to master and push with confidence!
Это может показаться, как много печатать, но если вы хорошо летать на корпусе (пользуясь set -o emacs
или set -o vi
является хорошим способом), то этот подход становится почти мгновенно.
Если я работаю по-настоящему, это очень быстрое решение, я, как правило, просто использую подход «сценический подход», но что-то дольше, чем это необходимо для безопасности заполнения моего рефлога, когда я иду.
Трудный момент создания - хорошая идея. Благодарю. – LeGEC
Для тестирования я попытался найти все '.git/objects/ab/cdef ...' blobs, возвращенные моим 'fsck -unreachable'. Некоторые из оборванных капель не присутствуют, что, вероятно, означает, что они хранятся в файлах pack. Вы знаете быстрый способ найти файл пакета, к которому принадлежит blob? – LeGEC
Я искал дату изменения файлов. У вас есть еще один трюк, чтобы найти дату изменения блоба? – LeGEC