2012-09-14 128 views
4

我在使用git時遇到了一些問題。希望有人有一些建議。
我有一個位於NAS驅動器上的主存儲庫。然後我有Linux上的用戶存儲庫(Ubuntu 12.04服務器)。 NAS驅動器使用CIFS安裝在Linux服務器上,因此從/向遠程存儲庫傳輸文件時不需要HTTP或SSH。無法從用戶存儲庫推送到位於NAS上的主存儲庫

當我嘗試從NAS上的用戶存儲庫推送到主存儲庫時,我始終得到有關無法在NAS上設置權限位的錯誤。在過去的幾天裏,我已經對此進行了很多研究,儘管所有用戶都具有對NAS的讀/寫文件權限,但由於NAS的工作方式,您無法通過執行chmod來更改權限位。在NAS上創建的文件的權限位由mount命令參數(file_mode,dir_mode等)設置。

這是我的錯誤,當我嘗試從用戶系統信息庫推到NAS的主存儲庫:

[email protected]:~/slave_repository.git$ git push master_git 
Counting objects: 6, done. 
Delta compression using up to 12 threads. 
Compressing objects: 100% (3/3), done. 
Writing objects: 100% (5/5), 2.52 KiB, done. 
Total 5 (delta 0), reused 0 (delta 0) 
Unpacking objects: 100% (5/5), done. 
error: cannot fix permission bits on refs/heads/master.lock 
fatal: Unable to create 
'/mnt/nassource/master_repository.git/.git/refs/heads/master.lock': 
Operation not permitted 
fatal: The remote end hung up unexpectedly 
fatal: The remote end hung up unexpectedly 
[email protected]:~/slave_repository.git$ git config --global --list 
user.name=DBA 
[email protected] 
core.editor=emacs 
core.filemode=false 
merge.tool=diff 

任何意見,將不勝感激......

+1

該問題似乎出現在文件創建中,而不是chmod。如果您無法通過CIFS安裝創建文件,那就需要修復這個問題。 – msw

+0

dba @ clp01:〜/ slave_repository.git $ touch /mnt/nassource/master_repository.git/.git/refs/heads/master.lock dba @ clp01:〜/ slave_repository.git $ ls -l/mnt/nassource/master_repository.git/.git/refs/heads/master.lock -rwxrwxr-- 1 sysadmin nasshare 0 9月14日09:57 /mnt/nassource/master_repository.git/.git/refs/heads/master.lock dba @ clp01:〜/ slave_repository.git $ chmod 777 /mnt/nassource/master_repository.git/.git/refs/heads/master.lock chmod:更改'/mnt/nassource/master_repository.git/.git/refs/的權限heads/master.lock':不允許操作。我不確定這一點。我可以創建文件。 – jrizos

回答

0

你的NAS支持NFS嗎?對你來說可能是更好的選擇。

0

幾分鐘前我遇到了這個問題。我試圖在touch遠程服務器上創建一個新文件,但失敗了。所以我用sudo git push theRemote它工作。可能不是最聰明的事情,但在我的情況下,它被掛在一個.lock文件上,沒有其他人推動這個回購,所以沒問題。