2013-02-15 43 views
4

我有一個git倉庫,我正在與幾個開發人員共享。我們會定期進行git pull並推動它。不幸的是,每次我執行git pull時,更改的文件都將失去組寫入權限。如何阻止git這樣做?Git不斷刪除組寫入權限

我在Ubuntu 12.04 LTS上運行這個。

上的共享回購的配置是這樣的:

[core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = true 
     sharedRepository = group 

我也跑在它下面的命令,試圖修復它

find repo.git -type d -exec chmod g+rws {} + 
sudo chmod -R g+rw repo.git/objects 

不管我最終的文件夾與755和文件與644時,我分別想要775和664。

+1

我已經是被這解決了類似的問題http://stackoverflow.com/questions/5306768/file-permission-issues -with-sharing-git-remote-repository – Magnus 2013-02-15 18:56:06

+0

我試過了,組寫權限一直在消失。這就是爲什麼我分開問這個問題的原因。 – 2013-03-01 18:39:04

回答

2

你可以用類似的東西做的Git掛鉤:

#!/bin/sh 
# 
# .git/hooks/post-merge 

sudo chmod -R g+rw * 

這是每一個混帳拉後調用,文件(git的/掛鉤/後合併)必須是可執行的

+2

恕我直言,不是一個很好的答案,因爲'sudo'不適用於很多人。 – 2014-09-05 23:14:52

+1

如果您有權執行'chmod' – 2014-09-15 10:30:10

1

您應該使用core.sharedRepository=groupcore.sharedRepository=0664設置。

參見例如http://criticallog.thornet.net/2010/01/07/sharing-your-git-repository/

+0

,您可以刪除'sudo'我必須試試這個。 – 2013-12-03 17:10:32

+0

我必須承認,在設置時我寫了這個,它不適用於我*臉紅*。我不知道我是否正確設置它,因爲它似乎是爲鏈接作者 – w00t 2013-12-04 11:28:16

+0

工作當使用'git init --shared'時,它添加配置選項'core.sharedrepository = 1',這大概與'true'相同或'group'。我開始認爲這隻適用於存儲庫,但不適用於工作文件,因爲它還添加了'receive.denyNonFastForwards'。 – w00t 2013-12-04 11:37:21

0

有問題的用戶也需要有自己的umask設置爲002