簡體   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