繁体   English   中英

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

[英]file ownership doesn't stay on git branch change

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

我有几个文件的git项目。 我意外地创建,添加并提交了一个文件,该文件的root用户是文件所有者,而不是我已设置为项目其余部分的所有者的用户。 我合并了这个文件,使其既在我的master分支中,又在我的dev分支中。 在两个分支中,它都读取root是此文件的所有者。

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

现在,如果我去检出dev分支并运行ls -l则表明文件再次由root拥有。 如果我再次检出master分支,它现在表明文件所有者已更改回root用户而不是“ user”。

我尝试了很多事情,但是每次我检出包含该文件的分支时,无论我多么努力地将其设置为“ user”,都始终将用户设置为“ root”。

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

谢谢。

除非您自己是root用户,否则无法创建root用户拥有的文件[1]。 这是一个根本的安全问题,甚至早于Linux。

在使用git存储库时,请停止使用root用户ID,问题将消失。

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

[1]是的,如果您对该目录具有写权限,则可以重命名root拥有的文件。 但是当签出文件时,git不会这样做。

事实证明,必须将提交推送到远程存储库才能保留所有权更改。 不知道为什么会这样。 是的,我知道不要使用root用户等。这是一个愚蠢的小错误,我正在尝试纠正。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM