Использование git: зафиксированные изменения в одной ветви влияют на 'master' - PullRequest
3 голосов
/ 14 марта 2011

У меня проблема с git, которая, как мне кажется, может быть связана с разрешениями.Ситуация выглядит следующим образом: у меня есть две ветви, «мастер» и «тема».Данный файл называется «settings.php», и у него есть права доступа r - rw-rw-, и в качестве владельца указано мое собственное имя пользователя.Я использую Ubuntu 10.4LTS.

Я создаю проблему следующим образом:

  1. Оформление ветки тем
  2. Внесите изменения в settings.php
  3. Добавьте и передайте изменения в 'theming'
  4. Извлеките 'master' ветку, используя: $ git checkout master

После предыдущих шагов я получаю сообщение об ошибке 'Невозможноотменить связь с settings.php ', и я отмечаю, что файл также был изменен в master.Это также происходит, если я делаю это наоборот, т.е.Я изменяю его в мастере, фиксирую изменения и проверяю их.Затем он не позволяет мне вернуться к предыдущей ветви, так как есть изменения, которые необходимо зафиксировать.

Единственный известный мне способ избежать этой проблемы - использовать $ sudo checkout [branchname].Это временно устраняет проблему, но если я когда-либо использую checkout без sudo, я снова сталкиваюсь с той же проблемой, и мне приходится беспокоиться об отмене всех изменений в моей текущей ветке.

Кто-нибудь знает, как решитьэтот?Я осмотрелся вокруг и нашел проблемы, связанные с отсутствием связи, но ни одна из них не похожа на мою.

Ответы [ 3 ]

3 голосов
/ 14 марта 2011

Вы не должны проверять это как root в первую очередь. Попробуйте изменить права доступа к хранилищу:

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

Если вам нужно использовать общий репозиторий, посмотрите руководство 'git init' для флага --shared. Или существует множество Google-хитов для групповых настроек, которые позволяют вам правильно делиться репо, но это зависит от версии git, поэтому я не буду рассказывать все это здесь. Настройка, которую вы, вероятно, ищете, если это так, это:

[core]        
sharedrepository = 0660

(а затем chgrp -R каталог и chmod g + s в каталоге)

0 голосов
/ 15 марта 2011

Это Даниэль М с новым именем.Во-первых, права доступа к файлам были на самом деле rw-rw-r--.Во-вторых, комментарий igorw был совершенно полезным.У меня не было разрешений на запись в родительский каталог.Как только я добавил это, моя проблема исчезла.

0 голосов
/ 14 марта 2011

Почему этот файл доступен только для чтения владельцу?Git не разрешается переписывать содержимое или заменять его при переключении веток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...