2010-10-15 4 views
8

J'ai un dépôt distant git sur mon serveur. Chaque fois que je pousse ma branche locale vers le serveur, les fichiers dans les objets ~/ont seulement les permissions rw pour mon compte spécifique (pas mon groupe - git). Donc, quand mon ami fait une poussée concernant ces fichiers dans ~/objets il obtient une erreur d'autorisation de droits.Définition des droits de groupe sur un dépôt distant git

Hes dans le même groupe: git, mais bien sûr, n'a pas le droit d'écrire (parce que le git groupe has'nt)

Comment puis-je dire git pour donner ces fichiers les droits à droite toute git-groupe?

Merci pour votre aide.

_christoph

Répondre

1

Je recommande que vous avez vos développeurs utilisent un compte utilisateur commun lors de la connexion au serveur de prise en pension à distance que vous utilisez. Vous pouvez gérer l'accès via les clés SSH pour ne pas avoir à vous soucier de la distribution/partage des mots de passe, etc.

Si vous voulez utiliser des comptes d'utilisateurs séparés, alors cette question a été répondue bien sur serverfault: https://serverfault.com/questions/26954/how-do-i-share-a-git-repository-with-multiple-users-on-a-machine

Vous voudrez peut-être regarder dans gitosis pour gérer votre propre repo: http://eagain.net/gitweb/?p=gitosis.git

bonnes instructions d'installation gitosis sont disponibles à http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way.

15

De git-config(1):

  • core.sharedRepository
    Lorsque le groupe (ou vrai), le dépôt est fait partageable entre plusieurs utilisateurs dans un groupe (en vous assurant tous les fichiers et les objets sont groupe inscriptible). [...]

faire sur le serveur:

  1. Configurer le référentiel pour le partage du groupe.
    Cela va élargir de force l'umask pour les futures opérations Git.

    cd /path/to/repository.git 
    git config core.sharedRepository group 
    
  2. Nettoyage des autorisations existantes:

    chgrp -R git . 
    chmod -R g=u . 
    
  3. groupe de travail héritage de propriétaire pour les nouvelles entrées (non nécessaires sur les systèmes de type BSD, mais habituellement nécessaires sur d'autres systèmes):

    find . -type d -print0 | xargs -0 chmod g+s 
    
Questions connexes