Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ewwmy/035af264c0e7b52336a0ac0a99813dd9 to your computer and use it in GitHub Desktop.
Save ewwmy/035af264c0e7b52336a0ac0a99813dd9 to your computer and use it in GitHub Desktop.
old mode 100644 => new mode 100755 issue / После смены ОС и git clone репозитория
После переустановки ОС или клонировании вашего репозитория на другую локальную машину, съемный жесткий диск и прочее
может возникнуть проблема, которая при команде `git status` показывает, что все (или не все) фалы были изменены
хотя вы ничего не изменяли, а только копировали репозиторий:
$ git diff
#=> old mode 100644
new mode 100755
Есть два способа решить эту проблему:
1) Сказать `git` игнорировать изменения `filemode` через один из трех способов:
- $ git config core.filemode false # для конкретного репозитория
- $ git config --global core.filemode false # глобально
- Добавить в `~/.gitconfig` :
[core]
filemode = false
- Можно проверить статус `filemode` командой:
$ git config --list --show-origin | grep filemode
2) (!вполне возможно, что этот способ подойдет для пэт-проектов и не более)
Можно добавить изменения локально -> сделать коммит -> запушить коммит на GitHub (все как обычно).
Далее нужно сделать отмену последнего коммита:
$ git reset --hard 61aed977bc89350d0e20f0c04a5917cf6826d0c0
$ git push --force origin <branch>
Затем можно стереть послдение действи в локальном журнале ссылок `git reflog`:
$ git reflog delete HEAD@{number_of_HEAD} # например, подставив 0 и выполнив команду ->
-> удалит последнюю запись
Делаем `git pull origin <branch>` и в этот момент репозиторий в актуальном состоянии.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment