ПРИМЕЧАНИЕ: это не отвечает на общую проблему, которая была проблемой OP, но на другую проблему, где может появиться это сообщение об ошибке.Мне не хотелось задавать новый вопрос только для того, чтобы записать этот ответ, и скажите мне, если я должен сделать это вместо этого: P
Я попал в ситуацию, скорее всего, из-за некоторого повреждения определенного сбоя, который у меня был, чтоЯ получил эту ошибку, даже когда .git
существовал.
smar@aaeru ~/P/Nominatim> git status
fatal: Not a git repository (or any of the parent directories): .git
smar@aaeru ~/P/Nominatim [128]> ls .git
COMMIT_EDITMSG config* FETCH_HEAD HEAD index logs/ modules/ objects/ ORIG_HEAD packed-refs
Так как у меня не было ничего, что действительно нуждалось в сохранении, я просто пошел глупым путем и сделал ...
smar@aaeru ~/P/Nominatim [128]> git init
Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/
Все еще не работает, хотя, например, git log
возвращает fatal: bad default revision 'HEAD'
.Пульты были там , поэтому я сделал git fetch --all
, а затем просто git reset --hard origin/master
, чтобы перейти в состояние, в котором был репо.
Обратите внимание, что если есть некоторые незафиксированные изменения, выможно увидеть их с помощью git status
, git diff
и так далее.Тогда просто git diff yourfile > patch
перед выполнением сброса.
По крайней мере для меня reflog (git reflog
) полностью исчез.Следовательно, если вы делаете сброс, и вы хотели предотвратить некоторые изменения, я не уверен, что вы сможете вернуть их после сброса.Поэтому убедитесь, что у вас есть все резервные копии изменений, которые вы не можете потерять, в конечном итоге, просто скопировав клон, прежде чем пытаться это сделать.