Skip to content

Instantly share code, notes, and snippets.

@georgiybykov
Last active February 14, 2024 09:28
Show Gist options
  • Save georgiybykov/3a1d4c8b9eeb9cac87385b2ba9d040ba to your computer and use it in GitHub Desktop.
Save georgiybykov/3a1d4c8b9eeb9cac87385b2ba9d040ba 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>` и в этот момент репозиторий в актуальном состоянии.
@ewwmy
Copy link

ewwmy commented Mar 24, 2021

То, что нужно, спасибо :)

@georgiybykov
Copy link
Author

@andryx77, не за что, рад что оказалось полезно 👍

Есть еще третий способ, просто git checkout . сделать и на этом всё. Однако, это смотря какую именно проблему нужно решить.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment