Автор Тема: Вопрос по работе с git  (Прочитано 4504 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Вопрос по работе с git
« : 10.04.2016 16:39:45 »
Всем привет!

Есть сайт, который лежит по адресу /var/www/, права на каталог с этим сайтом 755, принадлежит apache2:apache2.
Допустим, я хочу разместить его на github и в дальнейшем работать с git. Я правильно понимаю, что мне нужно будет работать с git от root ? Иначе я от пользователя не смогу ничего записать в этот каталог. Но тогда, если я буду делать clone, владельцем всех файлов станет root, правильно ? Но мне это не нужно, у меня все файлы внутри тоже принадлежат apache2:apache2.

Как быть-то ?..
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Вопрос по работе с git
« Ответ #1 : 10.04.2016 17:08:02 »
Я правильно понимаю, что мне нужно будет работать с git от root ?
Почему?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Re: Вопрос по работе с git
« Ответ #2 : 10.04.2016 17:17:28 »
Почему?
Потому что когда я перехожу в каталог с сайтом, я получаю отлуп:
$ git init
/var/www/site/.git: Permission denied
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Вопрос по работе с git
« Ответ #3 : 10.04.2016 17:31:03 »
Ну скопируйте его содержимое в домашний каталог, и там создайте git, а если нужно будет восстановить из git - скопируете из git туда, куда вам будет нужно.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Re: Вопрос по работе с git
« Ответ #4 : 10.04.2016 17:37:04 »
Ну скопируйте его содержимое в домашний каталог, и там создайте git, а если нужно будет восстановить из git - скопируете из git туда, куда вам будет нужно.
Ага, и чё я буду постоянно из каталога git переносить в /var/www/site чтобы посмотреть изменения в браузере ?! Я же доработки вношу ещё и мне нужно их в браузере сразу смотреть. Так мне не нравится...
Есть ли более красивое решение ?

PS. Я про ACL подумал пока.
Сноси Винду, переходи на Линукс ! :)

Оффлайн neobht

  • Завсегдатай
  • *
  • Сообщений: 390
Re: Вопрос по работе с git
« Ответ #5 : 10.04.2016 17:52:38 »
занесите пользователя под которым работать планируете с git в группу apache2 и установите группе необходимый доступ на директории сайта.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Вопрос по работе с git
« Ответ #6 : 10.04.2016 19:52:21 »
Настройте git-server
Андрей Черепанов (cas@)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Re: Вопрос по работе с git
« Ответ #7 : 10.04.2016 20:24:42 »
Настройте git-server
Немного не понял... что это даст ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Вопрос по работе с git
« Ответ #8 : 10.04.2016 21:08:35 »
Ну, сервер кладёт в нужную папку в соответствиями со своими правами, а не в соответствии с правами пользователя.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Re: Вопрос по работе с git
« Ответ #9 : 11.04.2016 09:37:53 »
ruslandh
Я всё равно не понял...  :'-(

Я git только осваиваю, поэтому много вопросов.
Я создал на github репо с одной веткой master.
У себя выполнил:
cd /var/www/site
git init
git add .
git commit
git remote add site https://github....
git pull site master
git push site master

После 'git pull ...', у меня появился файл /var/www/site/README.md. Так вот его владельцем стал user:user. Если я буду делать только push, то, полагаю, проблем быть не должно, но если делать pull, то будет свистопляска с правами... так можно окончательно запутаться.

Может я что-то делаю неправильно ? И разработку нужно вести иначе (касаемо расположения файлов) ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн sirares

  • Давно тут
  • **
  • Сообщений: 187
Re: Вопрос по работе с git
« Ответ #10 : 11.04.2016 12:26:40 »
Основы-Git
githowto
Я работал локально, для сохранения конфигураций аппаратуры.
Цитировать
Setting access rights

To restrict read and/or write access, use standard Unix permissions. Refer to http://sitaramc.github.com/gitolite/doc/overkill.html[dead link 2013-11-06] (archive.org mirror) for more information.

For fine-grained access management, refer to gitolite and gitosis.
перевод
Цитировать
Настройка прав доступа

Для ограничения чтения и/или записи, используются стандартные разрешения Unix. См http://sitaramc.github.com/gitolite/doc/overkill.html[мертвой ссылке 2013-11-06] (зеркало archive.org ) для получения дополнительной информации.

Для точного управления доступа, обратитесь к gitolite и gitosis.


Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Re: Вопрос по работе с git
« Ответ #11 : 18.04.2016 10:19:38 »
С правами пока так оставлю, спасибо. Насчёт сервера так и не разобрался.

Вопрос появился ещё.

По работе с тегами. Я, так понимаю, их можно использовать для версионности проекта ?
Не совсем понял как пользоваться инструментом... мне сначала нужно выполнить все 'git commit...', а потом уже 'git tag v1.2' и все мои commit'ы будут относиться к версии 1.2 или нет ? Какой порядок выполнения я не могу уловить...
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Вопрос по работе с git
« Ответ #12 : 18.04.2016 10:44:22 »
Тэг, или метка - просто задаёт имя конкретному коммиту, ну и подписывает его. Да, вначале надо создать коммит, а потом его отметить тэгом.
Теги позволяют, например, отмечать какие-то релизные версии проекта, что-бы их можно было быстро найти по названию. В сборочной среде Альта - подписанный тег, это обязательное условие, что-бы отпраить исправленную версию пакета на сборку. Именно по имени тэга, сборочная среда понимает какой коммит надо отправлять на сборку (и тэги имеют вид версия-релиз, типа 2.26-alt1).

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Re: Вопрос по работе с git
« Ответ #13 : 18.04.2016 11:17:20 »
То есть, я сейчас загрузил проект на github::
cd /var/www/site
git init
git add .
git commit
git remote add site https://github....
git pull site master
git push site master
и хочу присвоить метку текущему состоянию, я должен выполнить так:
git tag 1.0.0.0
git push site master
Потом ещё что-то добавляю и новый тег делаю:
git add .
git commit -m 'version 1.0.0.1'
git tag 1.0.0.1
git push site master

Правильный порядок ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Вопрос по работе с git
« Ответ #14 : 18.04.2016 11:29:37 »
git push site master
Обычно использую
git push --follow-tagsчто-бы загрузить все новые тэги.