Git - 结账后所有文件都丢失了可执行权限

时间:2013-09-02 13:37:49

标签: linux git

我想检查一个较旧的提交到我的工作目录以搞乱一些事情,所以我在我的仓库的根目录中执行了以下命令:

git checkout 2aa2c5 .

但没有任何事情发生,#提示只是回来了。我做了几次这个命令,但似乎什么也没发生。然后我做了:

git status

这表明我还在master。然后我做了:

git checkout master

因为我不确定发生了什么,只是想回到原来的位置。它以Already on master

返回

但是现在我的网站无法访问,现在每个文件似乎都拥有644的权限?我真的不确定发生了什么事?看起来虽然我原来尝试签出提交没有做任何事情,但它已经搞砸了我的文件权限和/或文件所有权。

更新:我不认为这是问题的许可。我认为问题是所有文件已更改为所有者和组的root?我在结帐时以root身份登录,是否会导致此问题?

我一般都是git和Linux文件的新手,如果有人可以对此有所了解,我会非常感激。

由于

1 个答案:

答案 0 :(得分:0)

权限和所有权对Web服务器至关重要。如果你弄错了,错误的人(=破解者)可以阅读或修改你的文件。因此,请确保您了解自己在做什么。

根据经验,永远不要像root那样工作。一个愚蠢的错误(像一个切割和粘贴太多的flacky鼠标)可能会花费你几个小时的工作。

在您的情况下,似乎文件的所有权已更改。要解决此问题,您必须删除所有文件(以root身份; 小心 - 如果您犯了错误,您可能想要的更多内容将会消失!)

尝试保留Git repo(即删除除.git文件夹之外的所有内容),但我担心以root身份运行git已经弄乱了该文件夹中的某些权限。

所以你最好的选择是删除整个树(包括.git文件夹)并用正确的用户再次克隆它。

相关: