Mam kasę. Wszystkie uprawnienia do plików różnią się od tego, co git uważa, że powinny być, dlatego wszystkie są wyświetlane jako zmodyfikowane.
Bez dotykania zawartości plików (po prostu chcę zmodyfikować uprawnienia) jak ustawić wszystkie uprawnienia do plików według tego, co według gita powinny być?
git
file
file-permissions
Dale Forester
źródło
źródło
Odpowiedzi:
Git śledzi uprawnienia do plików i ujawnia zmiany uprawnień podczas tworzenia łatek przy użyciu
git diff -p
. Wszystko czego potrzebujemy to:Jako jedna linijka:
możesz również dodać go jako alias do konfiguracji git ...
... i możesz je wywołać za pomocą:
Uwaga: jeśli używasz powłoki
bash
, upewnij się, że używasz'
zamiast"
cudzysłowów wokół!git
, w przeciwnym razie zostanie zastąpione ostatnimgit
uruchomionym poleceniem.Dzięki @Mixologic za wskazanie, że po prostu używając
-R
ongit diff
, kłopotliwesed
polecenie nie jest już wymagane.źródło
fatal: unrecognized input
Próbować
git config core.fileMode false
Ze strony podręcznika
git config
:źródło
git checkout origin/master
ustawia uprawnienia do pliku przypisane do serwera do mojej lokalnej kopii roboczej? Ponieważ za każdym razem, gdy buduję V8 dla ArangoDB, uprawnienia do plików są zmieniane, tak że odmawia się dostępu do całego folderu kompilacji (nawet z podwyższonymi prawami; to znaczy Windows 7+). Przed kontynuowaniem procesu kompilacji muszę naprawić wszystkie lokalne uprawnienia do plików. Czycore.filemode false
to też można naprawić? Podejrzewam, że git ustawia uprawnienia Linuksa na moim komputerze z systemem Windows. Skrypty kompilacji mogą je po prostu zachować i zastosować te same uprawnienia do nowo utworzonych plików ...filemode
sięfalse
!Git nie przechowuje uprawnień do plików innych niż skrypty wykonywalne. Zastanów się nad użyciem czegoś takiego jak git-cache-meta, aby zapisać własność pliku i uprawnienia.
Git może przechowywać tylko dwa typy trybów: 755 (plik wykonywalny) i 644 (plik wykonywalny). Jeśli plik miał 444, git zapisałby, że ma 644.
źródło
umask
a także na ustawieniach konfiguracyjnych, patrz stackoverflow.com/a/12735291/125150 ....a mode of 100644, which means it’s a normal file. Other options are 100755, which means it’s an executable file; and 120000, which specifies a symbolic link. The mode is taken from normal UNIX modes but is much less flexible — these three modes are the only ones that are valid for files (blobs) in Git (although other modes are used for directories and submodules).
będzie działać w większości przypadków, ale jeśli masz zainstalowane zewnętrzne narzędzia porównywania, takie jak meld, musisz dodać --no-ext-diff
był potrzebny w mojej sytuacji
źródło
Możesz także spróbować haka przed / po kasie, aby załatwić sprawę.
Zobacz: Dostosowywanie Git - Haki Git
źródło
Używam git z cygwin w systemie Windows,
git apply
rozwiązanie nie działa dla mnie. Oto moje rozwiązanie, uruchomchmod
na każdym pliku, aby zresetować uprawnienia.źródło
git diff -p
użyte w odpowiedzi muhqua mogą nie wykazywać wszystkich rozbieżności.core.filemode
jestfalse
(co jest domyślnym ustawieniem MSysGit)Zamiast tego kod odczytuje metadane bezpośrednio:
Jednowarstwowy materiał nieprodukcyjny (całkowicie zastępuje maski):
(Kredyt za „$ '\ 0” trafia na http://transnum.blogspot.ru/2008/11/bashs-read-built-in-supports-0-as.html )
źródło
Najłatwiej jest po prostu zmienić uprawnienia z powrotem. Jak zauważył @kroger, git śledzi tylko bity wykonywalne. Prawdopodobnie musisz po prostu uruchomić,
chmod -x filename
aby to naprawić (lub+x
jeśli to jest to potrzebne.źródło
git show
: diff --git a / OpenWatch / src / org / ale / openwatch / fb / FBUtils.java b / OpenWatch / src / org / ale / openwatch / fb / FBUtils.java index cd6fa6a..e5b0935 100644 That nieco pogrubioną czcionką są uprawnienia do plików.100644
na100755
. Nie sądzę, żebyś zasłużył sobie na głos; Git powinien zostać odrzucony. Jest tak zepsuty na wiele sposobów na tak różnych poziomach ...etckeeper
Narzędzie może obsłużyć uprawnienia oraz z:Możesz użyć go do innych katalogów niż
/etc
.Zainstaluj za pomocą menedżera pakietów lub pobierz źródła z powyższego linku.
źródło