Разрешение / владелец проблема с нажатием Git при редактировании непосредственно из репо?

У меня есть веб-интерфейс для развертывания скриптов из нашего репозитория в Github на нашем работающем сервере. Веб-интерфейс просто запускает скрипт bash с некоторыми командами git. Если я делаю изменения локально, нажимаю на репо, а затем запускаю скрипт bash, чтобы вытащить репо, чтобы жить, он работает нормально. Однако, если я внесу изменения непосредственно в репо (через веб-интерфейс Github), у меня возникнут проблемы с перемоткой вперед / блокировкой.

Вот шаги, которые я предпринимаю:

  1. Внесите изменения в файл в репозитории Github
  2. Запустите bash-скрипт (как apache) через Интернет с живого сервера, который пытается выполнить git push / pull. Получите эти проблемы:

    PUSH
    To git@github.com:name/name.git
    ! [rejected]        master -> master (non-fast-forward)
    error: failed to push some refs to 'git@github.com:name/name.git'
    To prevent you from losing history, non-fast-forward updates were rejected
    Merge the remote changes before pushing again.  See the 'Note about
    fast-forwards' section of 'git push --help' for details.
    
    PULL
    From github.com:name/name
    branch            master     -> FETCH_HEAD
    error: unable to unlink old 'includes/footer.inc' (Permission denied)
    Updating 8f6d922..d1eba9d
    Updating 8f6d922..d1eba9d
    
  3. SSH в качестве root, попробуйте push / pull, и все работает нормально.

Идеи о том, почему этот метод не работает из Apache?

2 ответа

Поскольку файлы в вашей локальной копии хранилища не принадлежат пользователю веб-сервера. По крайней мере, некоторые из них, вероятно, принадлежат root, учитывая, что вы pushЭд и pullЭд как root,

chown -R твой друг.

Толчок терпит неудачу, потому что у вас есть расходящаяся история. Вам необходимо объединить изменения в вашем локальном репозитории с текущей удаленной веткой, а затем передать этот результат в Github. Смотрите ProGit для подробностей этой операции.

Тяга терпит неудачу, потому что, как сказал Мо, у тебя проблемы с разрешениями.

Другие вопросы по тегам