2011-03-14 3 views
3

J'ai un problème avec git qui, selon moi, peut être lié aux permissions. La situation est la suivante: j'ai deux branches, «maître» et «thème». Le fichier en question s'appelle 'settings.php', et il a les permissions r - rw - rw -, et le propriétaire listé est mon propre nom d 'utilisateur. J'utilise Ubuntu 10.4LTS.L'utilisation de git: les changements validés dans une branche affectent 'master'

Je produis la question de la manière suivante:

  1. Commander la branche thématisation
  2. Marque changement settings.php
  3. Ajouter et valider le changement de « thématisation »
  4. Commander « maître 'branchez en utilisant: $ git checkout master

Après les étapes précédentes, j'obtiens l'erreur' impossible de délier les paramètres .php ', et je note que le fichier a également été changé en master. Cela arrive aussi si je le fais dans l'autre sens, c'est-à-dire. Je le change en maître, commets le changement, et vérifie les thèmes. Cela ne me laisse pas revenir à la branche précédente, car il y a des changements à commettre. Le seul moyen que je connaisse pour éviter ce problème est d'utiliser $ sudo checkout [branchname]. Ceci évite temporairement le problème, mais si jamais je passe la commande sans sudo, je retrouve la même chose et je dois m'inquiéter d'annuler tous les changements dans ma branche actuelle.

Est-ce que quelqu'un sait comment résoudre ce problème? J'ai regardé autour de moi et j'ai trouvé des problèmes liés à la dissociation, mais pas à la mienne.

+0

Quelles sont les autorisations de répertoire? Pouvez-vous écrire dans le répertoire? Apparemment, la dissociation nécessite une autorisation d'écriture dans le répertoire. – igorw

+0

Veuillez ne pas "essayer * sudo *" pour chaque problème d'autorisation. L'utilisation normale de Git ne nécessite pas * sudo *. Si vous travaillez dans votre référentiel personnel, vous devez disposer de toutes les autorisations dont vous avez besoin. Si les permissions sont fausses, vous devez les corriger au lieu de recourir à des commandes aléatoires en tant que root (ce qui peut causer des problèmes de permissions en premier lieu). –

Répondre

0

Ceci est Daniel M avec un nouveau nom. Tout d'abord, les permissions de fichiers étaient en fait rw-rw-r--. Deuxièmement, le commentaire de igorw était parfaitement utile. Je n'avais pas d'autorisation d'écriture sur le répertoire parent. Dès que j'ai ajouté ceci, mon problème a disparu.

+0

S'il vous plaît [fusionner] (http://meta.stackexchange.com/questions/18232/how-can-one-link-merge-combine-associate-two-accounts-users-anonymous-unregiste/73801#73801) vos comptes ([Daniel M] (http://stackoverflow.com/users/658933/daniel-m) et [Paragon] (http://stackoverflow.com/users/659816/paragon)). –

3

Vous ne devriez pas le vérifier en tant que root en premier lieu. Essayez de changer les permissions du référentiel de nouveau à vous:

# chown -R yourname ~/path/to/your/gitrepo 

Si vous avez besoin d'utiliser un référentiel partagé, consultez le manuel 'init git pour le drapeau --shared. Ou il y a beaucoup de google hits pour les paramètres de groupe qui vous permettent de partager correctement un repo, mais il dépend de la version git donc je ne vais pas tout raconter ici. Le paramètre que vous êtes probablement pour, le cas échéant, est celui-ci:

[core]   
sharedrepository = 0660 

(puis chgrp -R le répertoire et chmod g + s sur le répertoire ainsi)

0

Pourquoi le fichier en question en lecture seule pour le propriétaire? Git n'est pas autorisé à réécrire le contenu ou à le remplacer lorsque vous changez de branche.

Questions connexes