gpt4 book ai didi

linux - 文件所有权不会停留在 git 分支更改上

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

好的,我有一个奇怪的问题。

我有一个包含多个文件的 git 项目。我不小心创建、添加并提交了一个文件,文件所有者是 root 用户,而不是我设置为项目其余部分所有者的用户。我 merge 了这个文件,所以它既在我的 master 分支中,也在我的 dev 分支中。在两个分支中,它都显示 root 是该文件的所有者。

因此,在 checkout 我的 master 分支后,我运行了 chown user:user file.txt 将文件设置为项目其余部分的普通用户。在执行 ls -l 后,我看到该文件现在显示“用户”现在是所有者和组。太棒了!

现在,如果我去检查 dev 分支并运行 ls -l,它会显示该文件再次归 root 所有。如果我再次检查 master 分支,它现在显示文件所有者已经变回 root 用户而不是“用户”。

我尝试了很多方法,但每次我 check out 包含该文件的分支时,无论我如何努力将其设置为“用户”,用户总是被设置为“root”。

我做错了什么吗? git 不应该存储文件的所有者,但它似乎忽略了我的所有权更改。

谢谢。

最佳答案

不可能创建属于 root 的文件,除非您自己是 root[1]。这是一个甚至早于 Linux 的基本安全问题。

在使用 git 存储库时停止使用 root 用户标识,问题就会消失。

对整个 git 存储库执行递归 chown -R。然后始终以正确的用户身份登录时执行 git 命令。

[1] 是的,如果您对目录具有写权限,则可以重命名 root 拥有的文件。但是 git 在 check out 文件时不会那样做。

关于linux - 文件所有权不会停留在 git 分支更改上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35641642/

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