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 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
přepsat/smazat remote git repo můžeš takto:
git push --force --set-upstream origin master
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
udelej adresar projektu napr.: mkdir project1
pak prejdi do repa: cd project1.git
a obnov projekt z gitu: git --work-tree=../project1 checkout -f