Я создал каталог /var/www
для хранения своего клона веб-приложений. Когда я первоначально клонировал приложение из github, мне требовалось использовать sudo, и каждый раз, когда я выполняю git pull
, требуется sudo. Я сталкиваюсь с некоторыми проблемами из-за этого. Например, мои ключи ssh не совпадают. Поэтому, когда я делаю git pull
, мне приходится использовать https вместо ssh и вручную вводить свое имя пользователя и пароль каждый раз, когда я хочу получить и обновить свое приложение. Как мне это настроить, чтобы мне не приходилось использовать sudo каждый раз, когда я использую git?
Здесь происходит несколько вещей:
Когда вы sudo git checkout ...
, все эти файлы принадлежат пользователю root и корневой группе. Со стандартными разрешениями, поэтому последующие изменения этих файлов требуют, чтобы вы были пользователем root.
/var/www/
по умолчанию принадлежит группе www-data
. Что-то, что ваш пользователь не по умолчанию.
Самый простой способ написать в /var/www/
- просто добавить своего пользователя в группу www-data . Конечно, вы можете изменить каталог, который будет принадлежать вашему пользователю, но это может иметь некоторые неприятные эффекты, если вы не опережаете их.
После добавления вашего пользователя в группу www-data вам необходимо будет повторно войти в систему.
В вашем конкретном случае вам нужно будет исправить текущую неразбериху с корневыми данными. Вы можете удалить его как суперпользователь (и повторно оформить заказ), но если у вас есть несохраненная работа, будет просто чище вернуть все пользователю. Следующий пример чрезвычайно ленив и предполагает, что то, о чем мы говорим, является единственным в / var / www /:
sudo chown -R www-data: /var/www/
Хм, сменить владельца папки? Я переместил свою папку www в / home / username, вы можете изменить ее местоположение в / etc / apache2 / sites-enabled / 000-default
Я немного опоздал с этим ответом, но обнаружил, что во избежание ввода пароля каждый раз мне приходилось менять репо с https на ssh.
Из раздела справки Github.com:
Команда git remote set-url изменяет существующий URL-адрес удаленного хранилища.
Открытый терминал.
Измените текущий рабочий каталог на ваш локальный проект.
Перечислите существующие пульты, чтобы получить название пульта, который вы хотите изменить.
git remote -v
origin https://github.com/USERNAME/REPOSITORY.git (fetch)
origin https://github.com/USERNAME/REPOSITORY.git (push)
Измените URL вашего пульта с HTTPS на SSH с помощью команды git remote set-url.
git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
Убедитесь, что удаленный URL-адрес изменился.
git remote -v
# Проверить новый удаленный URL
origin git@github.com:USERNAME/REPOSITORY.git (fetch)
origin git@github.com:USERNAME/REPOSITORY.git (push)