Jak usunąć Pliki "stary tryb 100755 nowy tryb 100644" z nieakceptowanych zmian w Git?
Z jakiegoś powodu, kiedy początkowo wykonałem pull z repozytorium dla mojego projektu git,
Mam mnóstwo plików w mojej roboczej kopii, które nie mają zauważalnych zmian w nich, ale pojawiają się w moim unstaged changes
obszarze.
Używam Git Gui Na Windows xp, i kiedy idę spojrzeć na plik, aby zobaczyć, co się zmieniło. Wszystko co widzę to:
old mode 100755
new mode 100644
Czy ktoś wie, co to znaczy?
Jak mogę usunąć te pliki z listy nieakstragowanych zmian? (Bardzo irytujące, że trzeba przejrzyj 100 plików, aby wybrać pliki, które ostatnio edytowałem i chcę zatwierdzić).
7 answers
Wygląda mi to na unixowe tryby uprawnień do plików(755
=rwxr-xr-x
, 644
=rw-r--r--
) - stary tryb zawierał znacznik + x (wykonywalny), nowy tryb Nie.
Odpowiedzi w tym numerze msysgit sugerują ustawienie core.filemode do false w celu pozbycia się problemu:
git config core.filemode false
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-12 12:17:45
Ustawienie rdzenia.filemode na false działa. Ale upewnij się, że ustawienia w ~/.gitconfig nie są nadpisywane przez tych w .git / config.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-04 07:03:22
Napotkałem ten problem podczas kopiowania git repo z działającymi plikami ze starego dysku twardego kilka razy. Problem wynika z faktu, że właściciel i uprawnienia zmieniły się ze starego dysku/maszyny na nowy. Długi i krótki jest, uruchom następujące polecenia, aby wyprostować rzeczy ( dzięki tej odpowiedzi superuser):
sudo chmod -R -x . # remove the executable bit from all files
Poprzednie polecenie rzeczywiście rozwiąże różnice, które git diff zgłosił, ale anuluje Twoją możliwość wyświetlenia listy katalogi, więc ls ./
nie działa z ls: .: Permission denied
. Aby to naprawić:
sudo chmod -R +X . # add the executable bit only for directories
Zła wiadomość jest taka, że jeśli masz jakieś pliki, które chcesz zachować, np. Skrypty .sh
, musisz je przywrócić. Można to zrobić za pomocą następującego polecenia dla każdego pliku:
chmod +x ./build.sh # where build.sh is the file you want to make executable again
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-01 22:47:32
Możesz spróbować git reset --hard HEAD aby zresetować repo do oczekiwanego stanu domyślnego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-11 03:38:11
Wygląda na to, że zmieniłeś pewne prawa dostępu do katalogu. Zrobiłem następujące kroki, aby go przywrócić.
$ git diff > backup-diff.txt ### in case you have some other code changes
$ git checkout .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-06 10:47:13
Dzieje się tak, gdy wszystkie pliki są wykonywalne w zdalnym repozytorium. Ponowne ich wykonanie przywróci wszystko do normy.
chmod +x <yourfile> //For one file
chmod +x folder/* // For files in a folder
Możesz potrzebować:
chmod -x <file> // Removes execute bit
Zamiast tego, dla plików, które nie zostały ustawione jako wykonywalne i które zostały zmienione z powodu powyższej operacji. Jest lepszy sposób, aby to zrobić, ale jest to po prostu bardzo szybka i brudna poprawka.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-10 13:10:22
Miałem tylko jeden kłopotliwy plik ze zmienionymi uprawnieniami.
Aby przywrócić go pojedynczo, po prostu usunąłem go ręcznie za pomocą rm <file>
, a następnie wykonałem zamówienie, aby pobrać świeżą kopię.
If I had I could have run git reset -- <file>
before running git checkout -- <file>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-21 21:30:51