gpt4 book ai didi

linux - Git - checkout 后所有文件都失去了可执行权限

转载 作者:太空宇宙 更新时间:2023-11-04 04:12:13 27 4
gpt4 key购买 nike

我想 checkout 对我的工作目录的旧提交来搞乱一些东西,所以我在我的存储库的根目录中执行了以下命令:

git checkout 2aa2c5 .

但是什么也没发生,# 提示符又回来了。我又执行了几次命令,但似乎什么也没有发生。然后我做了:

git status

这表明我仍然处于master状态。然后我做了:

git checkout master

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

但是现在我的网站无法访问,现在每个文件的权限似乎都是644?我真的不确定发生了什么?看起来虽然我最初尝试 checkout 提交没有执行任何操作,但它扰乱了我的文件权限和/或文件所有权。

更新:我不认为权限是问题所在。我认为问题是所有文件的所有者和组都已更改为 root?我 checkout 时以 root 身份登录,会导致这种情况吗?

我对 git 和 Linux 文件权限总体来说是新手,如果有人能对此有所了解,我将非常感激。

谢谢

最佳答案

权限和所有权对于网络服务器来说确实至关重要。如果你弄错了,错误的人(=黑客)就可以读取或修改你的文件。因此,请确保您了解自己在做什么。

根据经验,永远不要以root身份工作。一个愚蠢的错误(例如,一只松散的鼠标进行了过多的剪切和粘贴操作)可能会花费您数小时的工作。

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

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

因此,您最好的选择可能是删除整个树(包括 .git 文件夹)并使用正确的用户再次克隆它。

相关:

关于linux - Git - checkout 后所有文件都失去了可执行权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18574649/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com