git fsck показывает дубликаты записей, но я могу git pull и push

Другие ответы хорошо объясняют, почему вы наблюдаете такое поведение. Но если я могу предложить, как на самом деле решить эту проблему:

Не используйте псевдонимы для чего-либо даже отдаленно сложного.

Конечно, вы можете запутать свой мозг, пытаясь выяснить, как вложить N слоев кавычек, но это редко стоит того для псевдонима. Когда псевдоним настолько сложен, что его цитирование становится нетривиальным, просто переключитесь на функцию оболочки:

shopt(){
    echo "You're looking for setopt. This is Z shell, man, not Bash."
}

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

shopt -s some_opt

...тогда вы получите этот вывод:

You're looking for setopt. This is Z shell, man, not Bash. -s some_opt

Вероятно, вы хотели не этого. Функция оболочки будет потреблять любые аргументы, которые вы ей передаете, и молча отбрасывать их.

0
05.03.2020, 12:50
1 ответ

Если я правильно прочитал сообщение об ошибке, в каком-то дереве (, т. е. в каталоге в какой-то момент в прошлом )один и тот же файл (содержимое )упоминается дважды. Само по себе это не фатально, но это, вероятно, означает, что что-то не так в вашей прошлой истории.

Что бы я сделал :Клонировать репозиторий в новую копию (локально; это должно распутать всякую ерунду в новом экземпляре; чек об оплате! ), сделайте резервную копию , прежде чем возиться! В подозрительном репозитории используйте низкоуровневые -инструменты git, такие как git show, чтобы осмотреться и посмотреть, сможете ли вы выяснить, что не так (и, возможно, исправить ). Проверьте опции git fsck.

0
28.04.2021, 23:21

Теги

Похожие вопросы