Git - contents are identical - jak opravit chmod práva

Git - contents are identical - jak opravit chmod práva

Nedopatřením jsem změnil rekurzivně chmod práva pro všechny soubory v projektu a tím jsem si trochu zavařil... V phpstormu to začalo nabízet všechny soubory se změněnými chmod právy commit, ačkoliv git hlásil contents are identical.

Našel jsem spoustu rad co s tím, např.

git config core.fileMode false

git config --global core.autocrlf false

ale nic nepomohlo.

 

Řešení

Bylo třeba jen změnit práva zpět, což je ale třeba provést cíleně na adresáře a soubory zvlášť a to takto:

# změnit práva pro soubory na 644

find project/ -type f -exec chmod 644 {} +

# změnit práva pro adresáře na 755

find project/ -type d -exec chmod 755 {} +

Pokud nevíte předchozí práva a chcete je zjistit v číselném formátu, tak si je zobrazíte takto:

stat --format="%a" project/app/Bootstrap.php

 

Další řešení

Pokud nejsou v projektu změněny žádné soubory, tak je možné provést samozřejmě git reset.

git reset --hard

 

 

 

 

Jak se ti článek líbil?

Komentáře (4)

Pillow
Ahoj,

jak smažu obsah remote git repositář na serveru? Nechci repo smazat, jen force přepsat součaný obsah.

Konkrétně jsem udělal git repo na github a potřebuji ty commity přepsat - udělal jsem lokálně nové git repo a to tam chci dostat.

Diky

Hanz
Ahoj,

přepsat/smazat remote git repo můžeš takto:

git push --force --set-upstream origin master
Foggy
Ahoj,
Mam stazeny raw git repo project1.git, ktery obsahuje jen git data:
branches description hooks objects refs config HEAD info packed-refs

Jak z toho sestavim projekt obsahujici soubory z posledniho commitu? Diky moc
Hanz
Ahoj,

udelej adresar projektu napr.: mkdir project1
pak prejdi do repa: cd project1.git
a obnov projekt z gitu: git --work-tree=../project1 checkout -f

Přidat komentář