Как настроить сервер Git? [dубликат]

Я решил проблему, просто удалив потоп и переустановив.

sudo apt-get --purge deluge-webui deluge
sudo apt-get install deluge deluge-webui
58
задан 12 November 2010 в 08:30

64 ответа

Вы можете использовать учебник для установки сервера Git, как предлагаемый вами aking1012, или вы можете просто установить SSH-сервер на свой экземпляр EC2 (вероятно, было бы разумно его защитить и изменить порт по умолчанию).

Git может быть без сервера, вы запускаете свой репозиторий, а затем получаете доступ к нему с удаленного устройства через SSH. Таким образом, инструкции, подобные этому на сервере Ubuntu, должны сделать это:

GIT_DIR=project.git git init cd project.git git --bare update-server-info cp hooks/post-update.sample hooks/post-update

Наконец, установите SSH на свой сервер:

sudo apt-get install ssh-server

Теперь вы должны настроить SSH для его защиты. [ ! d4]

Пришло время разместить ваш проект в сети (данные, которые у вас уже есть на вашей машине разработки):

git push ssh://<username>@<remote-git-hostname>/path/to/project.git master

И теперь вы можете начать клонирование. Вы идете на свою машину разработки:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

Проверьте этот учебник , чтобы установить сервер Git как предложенный aking1012 .

И для создания ваших ssh-ключей для более безопасную аутентификацию, вы можете прочитать эту статью об аутентификации SSH.

37
ответ дан 25 July 2018 в 22:31
  • 1
    Разве это не должно быть openssh-server? – Jorge Castro 12 November 2010 в 08:32
  • 2
    @jorge кажется, что ssh-server является псевдонимом openssh-сервера, по крайней мере, на Ubuntu 10.04. – Huygens 12 November 2010 в 11:38
  • 3
    хорошо, это может сработать, но для регистрации через SSH для машин Amazon EC2 требуется общедоступная / закрытая keypair (ssh -i key.pem ubuntu @ address). Кроме того, я должен запомнить путь (ubuntu @ address: / var / www / dir1 / dir2), а не просто git clone git.mydomain.com/repository – Paweł Karpiński 12 November 2010 в 12:02
  • 4
    @Pawel хорошая точка. Вот почему некоторые люди помещают git-репозиторий в корневую систему файловой системы. Но да, вам нужны ключи или учетные записи ssh. Или вы можете использовать HTTP, но тогда у вас нет действительно приятного контроля доступа AFAIK. – Huygens 12 November 2010 в 13:56
  • 5
    @ PawełKarpiński - вы можете настроить конфигурационный файл SSH на стороне клиента в ~/.ssh/config для обработки имени пользователя / хоста, ввода ключа, портов и еще чего-то. – Shauna 9 May 2012 в 23:06

Вы можете использовать учебник для установки сервера Git, как предлагаемый вами aking1012, или вы можете просто установить SSH-сервер на свой экземпляр EC2 (вероятно, было бы разумно его защитить и изменить порт по умолчанию).

Git может быть без сервера, вы запускаете свой репозиторий, а затем получаете доступ к нему с удаленного устройства через SSH. Таким образом, инструкции, подобные этому на сервере Ubuntu, должны сделать это:

GIT_DIR=project.git git init cd project.git git --bare update-server-info cp hooks/post-update.sample hooks/post-update

Наконец, установите SSH на свой сервер:

sudo apt-get install ssh-server

Теперь вы должны настроить SSH для его защиты. [ ! d4]

Пришло время разместить ваш проект в сети (данные, которые у вас уже есть на вашей машине разработки):

git push ssh://<username>@<remote-git-hostname>/path/to/project.git master

И теперь вы можете начать клонирование. Вы идете на свою машину разработки:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

Проверьте этот учебник , чтобы установить сервер Git как предложенный aking1012 .

И для создания ваших ssh-ключей для более безопасную аутентификацию, вы можете прочитать эту статью об аутентификации SSH.

37
ответ дан 26 July 2018 в 22:12

Вы можете использовать учебник для установки сервера Git, как предлагаемый вами aking1012, или вы можете просто установить SSH-сервер на свой экземпляр EC2 (вероятно, было бы разумно его защитить и изменить порт по умолчанию).

Git может быть без сервера, вы запускаете свой репозиторий, а затем получаете доступ к нему с удаленного устройства через SSH. Таким образом, инструкции, подобные этому на сервере Ubuntu, должны сделать это:

GIT_DIR=project.git git init cd project.git git --bare update-server-info cp hooks/post-update.sample hooks/post-update

Наконец, установите SSH на свой сервер:

sudo apt-get install ssh-server

Теперь вы должны настроить SSH для его защиты. [ ! d4]

Пришло время разместить ваш проект в сети (данные, которые у вас уже есть на вашей машине разработки):

git push ssh://<username>@<remote-git-hostname>/path/to/project.git master

И теперь вы можете начать клонирование. Вы идете на свою машину разработки:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

Проверьте этот учебник , чтобы установить сервер Git как предложенный aking1012 .

И для создания ваших ssh-ключей для более безопасную аутентификацию, вы можете прочитать эту статью об аутентификации SSH.

37
ответ дан 31 July 2018 в 10:32

Вы можете использовать учебник для установки сервера Git, как предлагаемый вами aking1012, или вы можете просто установить SSH-сервер на свой экземпляр EC2 (вероятно, было бы разумно его защитить и изменить порт по умолчанию).

Git может быть без сервера, вы запускаете свой репозиторий, а затем получаете доступ к нему с удаленного устройства через SSH. Таким образом, инструкции, подобные этому на сервере Ubuntu, должны сделать это:

GIT_DIR=project.git git init cd project.git git --bare update-server-info cp hooks/post-update.sample hooks/post-update

Наконец, установите SSH на свой сервер:

sudo apt-get install ssh-server

Теперь вы должны настроить SSH для его защиты. [ ! d4]

Пришло время разместить ваш проект в сети (данные, которые у вас уже есть на вашей машине разработки):

git push ssh://<username>@<remote-git-hostname>/path/to/project.git master

И теперь вы можете начать клонирование. Вы идете на свою машину разработки:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

Проверьте этот учебник , чтобы установить сервер Git как предложенный aking1012 .

И для создания ваших ssh-ключей для более безопасную аутентификацию, вы можете прочитать эту статью об аутентификации SSH.

37
ответ дан 2 August 2018 в 03:57

Вы можете использовать учебник для установки сервера Git в качестве предлагаемого aking1012, или вы можете просто установить SSH-сервер на свой экземпляр EC2 (вероятно, было бы разумно его защитить и изменить порт по умолчанию) .

Git может быть без сервера, вы запускаете свой репозиторий, а затем получаете доступ к нему с удаленного устройства через SSH. Поэтому такие инструкции, как это на сервере Ubuntu, должны сделать это:

  GIT_DIR = project.git git init cd project.git git --bare update-server-info cp hooks / post-update.sample   

Наконец, установите SSH на свой сервер:

  sudo apt-get install ssh-server  

Теперь вы должны настроить SSH для его защиты.

Пришло время разместить ваш проект в сети (данные, которые у вас уже есть на вашей машине разработки):

  git push  ssh: // & lt; имя_пользователя & gt; @ & lt; remote-git-hostname & gt; /path/to/project.git master  

И теперь вы можете начать клонирование. Вы идете на машину разработки:

  git clone ssh: // & lt; имя пользователя & gt; @ & lt; remote-git-hostname & gt; /path/to/dir.git  

Проверьте этот превосходный ресурс на Git .

И для генерации ваших ssh-ключей для более безопасной аутентификации вы можете прочитать эту статью о SSH-аутентификации .

37
ответ дан 4 August 2018 в 20:00

Вы можете использовать учебник для установки сервера Git в качестве предлагаемого aking1012, или вы можете просто установить SSH-сервер на свой экземпляр EC2 (вероятно, было бы разумно его защитить и изменить порт по умолчанию) .

Git может быть без сервера, вы запускаете свой репозиторий, а затем получаете доступ к нему с удаленного устройства через SSH. Поэтому такие инструкции, как это на сервере Ubuntu, должны сделать это:

  GIT_DIR = project.git git init cd project.git git --bare update-server-info cp hooks / post-update.sample   

Наконец, установите SSH на свой сервер:

  sudo apt-get install ssh-server  

Теперь вы должны настроить SSH для его защиты.

Пришло время разместить ваш проект в сети (данные, которые у вас уже есть на вашей машине разработки):

  git push  ssh: // & lt; имя_пользователя & gt; @ & lt; remote-git-hostname & gt; /path/to/project.git master  

И теперь вы можете начать клонирование. Вы идете на машину разработки:

  git clone ssh: // & lt; имя пользователя & gt; @ & lt; remote-git-hostname & gt; /path/to/dir.git  

Проверьте этот превосходный ресурс на Git .

И для генерации ваших ssh-ключей для более безопасной аутентификации вы можете прочитать эту статью о SSH-аутентификации .

37
ответ дан 6 August 2018 в 04:02

Вы можете использовать учебник для установки сервера Git в качестве предлагаемого aking1012, или вы можете просто установить SSH-сервер на свой экземпляр EC2 (вероятно, было бы разумно его защитить и изменить порт по умолчанию) .

Git может быть без сервера, вы запускаете свой репозиторий, а затем получаете доступ к нему с удаленного устройства через SSH. Поэтому такие инструкции, как это на сервере Ubuntu, должны сделать это:

  GIT_DIR = project.git git init cd project.git git --bare update-server-info cp hooks / post-update.sample   

Наконец, установите SSH на свой сервер:

  sudo apt-get install ssh-server  

Теперь вы должны настроить SSH для его защиты.

Пришло время разместить ваш проект в сети (данные, которые у вас уже есть на вашей машине разработки):

  git push  ssh: // & lt; имя_пользователя & gt; @ & lt; remote-git-hostname & gt; /path/to/project.git master  

И теперь вы можете начать клонирование. Вы идете на машину разработки:

  git clone ssh: // & lt; имя пользователя & gt; @ & lt; remote-git-hostname & gt; /path/to/dir.git  

Проверьте этот превосходный ресурс на Git .

И для генерации ваших ssh-ключей для более безопасной аутентификации вы можете прочитать эту статью о SSH-аутентификации .

37
ответ дан 7 August 2018 в 22:01

Вы можете использовать учебник для установки сервера Git в качестве предлагаемого aking1012, или вы можете просто установить SSH-сервер на свой экземпляр EC2 (вероятно, было бы разумно его защитить и изменить порт по умолчанию) .

Git может быть без сервера, вы запускаете свой репозиторий, а затем получаете доступ к нему с удаленного устройства через SSH. Поэтому такие инструкции, как это на сервере Ubuntu, должны сделать это:

  GIT_DIR = project.git git init cd project.git git --bare update-server-info cp hooks / post-update.sample   

Наконец, установите SSH на свой сервер:

  sudo apt-get install ssh-server  

Теперь вы должны настроить SSH для его защиты.

Пришло время разместить ваш проект в сети (данные, которые у вас уже есть на вашей машине разработки):

  git push  ssh: // & lt; имя_пользователя & gt; @ & lt; remote-git-hostname & gt; /path/to/project.git master  

И теперь вы можете начать клонирование. Вы идете на машину разработки:

  git clone ssh: // & lt; имя пользователя & gt; @ & lt; remote-git-hostname & gt; /path/to/dir.git  

Проверьте этот превосходный ресурс на Git .

И для генерации ваших ssh-ключей для более безопасной аутентификации вы можете прочитать эту статью о SSH-аутентификации .

37
ответ дан 10 August 2018 в 10:15

Вы можете использовать учебник для установки сервера Git в качестве предлагаемого aking1012, или вы можете просто установить SSH-сервер на свой экземпляр EC2 (вероятно, было бы разумно его защитить и изменить порт по умолчанию) .

Git может быть без сервера, вы запускаете свой репозиторий, а затем получаете доступ к нему с удаленного устройства через SSH. Поэтому такие инструкции, как это на сервере Ubuntu, должны сделать это:

  GIT_DIR = project.git git init cd project.git git --bare update-server-info cp hooks / post-update.sample   

Наконец, установите SSH на свой сервер:

  sudo apt-get install ssh-server  

Теперь вы должны настроить SSH для его защиты.

Пришло время разместить ваш проект в сети (данные, которые у вас уже есть на вашей машине разработки):

  git push  ssh: // & lt; имя_пользователя & gt; @ & lt; remote-git-hostname & gt; /path/to/project.git master  

И теперь вы можете начать клонирование. Вы идете на машину разработки:

  git clone ssh: // & lt; имя пользователя & gt; @ & lt; remote-git-hostname & gt; /path/to/dir.git  

Проверьте этот превосходный ресурс на Git .

И для генерации ваших ssh-ключей для более безопасной аутентификации вы можете прочитать эту статью о SSH-аутентификации .

37
ответ дан 13 August 2018 в 16:39
  • 1
    Разве это не должно быть openssh-server ? – Jorge Castro 12 November 2010 в 08:32
  • 2
    @jorge кажется, что ssh-server является псевдонимом openssh-сервера, по крайней мере, на Ubuntu 10.04. – Huygens 12 November 2010 в 11:38
  • 3
    хорошо, это может сработать, но для регистрации через SSH для машин Amazon EC2 требуется общедоступная / закрытая keypair (ssh -i key.pem ubuntu @ address). Кроме того, я должен запомнить путь (ubuntu @ address: / var / www / dir1 / dir2), а не просто git clone git.mydomain.com/repository – Paweł Karpiński 12 November 2010 в 12:02
  • 4
    @Pawel хорошая точка. Вот почему некоторые люди помещают git-репозиторий в корневую систему файловой системы. Но да, вам нужны ключи или учетные записи ssh. Или вы можете использовать HTTP, но тогда у вас нет действительно приятного контроля доступа AFAIK. – Huygens 12 November 2010 в 13:56
  • 5
    @ PawełKarpiński - вы можете настроить конфигурационный файл SSH на стороне клиента в ~ / .ssh / config для обработки имени пользователя / хоста, ввода ключа, портов и много чего. – Shauna 9 May 2012 в 23:06

Определенно следуйте официальной документации: https://help.ubuntu.com/community/Git (раздел «Настройка Git и управление проектами»)

6
ответ дан 25 July 2018 в 22:31

Мне также нравится gitolite подход для управления пользователями и безопасности. В настоящее время я тестирую сервер Git + gitolite AMI для EC2. Не стесняйтесь попробовать. Документация доступна здесь:

Alestic Git Server

Используя этот подход, вы можете иметь центральный сервер Git с частными хранилищами, работающими в считанные минуты. Существует кривая обучения для гитолита и EC2, если вы не знакомы с ними.

3
ответ дан 25 July 2018 в 22:31

Мне нравится гитолит.

Что касается вашего требования к нескольким пользователям:

Gitolite позволяет вам указывать разрешения не только с помощью репозитория (например, Gitosis), но также и именами ветвей или тегов в каждом репозитории. То есть вы можете указать, что определенные люди (или группы людей) могут только нажимать определенные «refs» (ветви или теги), но не другие.
9
ответ дан 25 July 2018 в 22:31
  • 1
    в книге, которую вы упомянули о ROCKS. Благодаря! – Paweł Karpiński 16 November 2010 в 19:30

Решение, которое работало лучше всего для меня, заключалось в настройке WebDAV.

sudo a2enmod sudo dav_fs sudo a2enmod dav добавить новый файл в /etc/apache2/sites-available и назвать его, например, git.yourserver.com. Отредактируйте его и добавьте следующие строки:

<VirtualHost *:80>

DocumentRoot /var/www/git.yourserver.com/repos ServerName git.yourserver.net Options Indexes FollowSymLinks MultiViews <Location /> DAV On AuthType Basic AuthName "git repos" AuthUserFile /var/www/git.yourserver.net/password.dav Require valid-user </Location>

</VirtualHost>

sudo a2enmod sudo dav_fs sudo chown www-data /var/www/git.yourserver.com/repos sudo a2enmod dav sudo chown root:www-data /var/www/git.yourserver.com/password.dav добавьте новый файл в /etc/apache2/sites-available и назовите его, например, git.yourserver.com. Отредактируйте его и добавьте следующие строки:

Теперь sudo a2ensite git.yourserver.com и sudo service apache2 restart.

sudo chown www-data /var/www/git.yourserver.com/repos cd myrepo.git sudo chown root:www-data /var/www/git.yourserver.com/password.dav git update-server-info

Теперь выйдите из своего удаленного сервера и перейдите в локальный каталог, в который вы хотите редактировать свои файлы.

git clone http://user_login:user_password@git.yourserver.com/myrepo.git

и вы - закончил он. Если вы хотите отправить свои измененные изменения на сервер:

git push origin master

Вы можете создать столько пользователей, сколько хотите, используя sudo htpasswd. Просто не забудьте использовать переключатель -c при добавлении большего количества пользователей, поскольку старый файл будет удален.

4
ответ дан 25 July 2018 в 22:31
  • 1
    HTTP - это "тупой" протокол, который поддерживается, но сильно обескуражен. Собственный протокол git работает намного лучше, и его проще настроить, поскольку все, что вам нужно сделать, это иметь рабочий сервер ssh (который вы уже должны) и установить git-core. Не нужно гадать с apache вообще. – psusi 16 April 2011 в 07:44

Этого очень легко достичь с помощью гитолита. Менее чем за час у вас будет простой настраиваемый и безопасный многопользовательский git-сервер.

У меня есть статья о статье gitolite

3
ответ дан 25 July 2018 в 22:31
  • 1
    примечание: в настоящее время я собираю готовые rvm, ree / ruby, rails, git tutorial для разработчиков и разработчика. он просто рисует много онлайн-уроков в одном месте и немного их модифицирует, но в настоящий момент это еще не все. – RobotHumans 11 November 2010 в 16:40
  • 2
    эти учебные пособия являются удивительными, но они довольно сложны. Разве нет «короче»? учебники? :) – Paweł Karpiński 12 November 2010 в 12:03
  • 3
    Я не видел ничего более простого ... большинство учебных пособий для gitorious и gitosis не проходят через создание образца проекта и тестирования (то, что я думаю, должно быть в каждом учебнике). Если я увижу другой, более прямой, я буду держать эту тему в голове – RobotHumans 12 November 2010 в 18:30
  • 4
    @ PawełKarpiński - Что с ними так сложно? Раньше я использовал настройку Gitosis, и на самом деле это очень просто. – Shauna 9 May 2012 в 23:08

Для всех моих настроек сервера Git я использую Gitolite, который позволяет обеспечить гранулярность безопасности доступа «на каждую ветвь». Настройка довольно проста, если вы делаете это на удаленном сервере, это так же просто, как запуск интерактивного скрипта. В дополнение к этой «простой в установке» природе он также имеет пакет в Natty и Maverick

sudo apt-get install gitolite

. Это не будет предоставлять веб-интерфейс, такой как Github или Gitweb, - но вы можете легко настроить и установите их поверх чего-то вроде Gitolite.

15
ответ дан 25 July 2018 в 22:31

Определенно следуйте официальной документации: https://help.ubuntu.com/community/Git (раздел «Настройка Git и управление проектами»)

6
ответ дан 26 July 2018 в 22:12

Мне также нравится gitolite подход для управления пользователями и безопасности. В настоящее время я тестирую сервер Git + gitolite AMI для EC2. Не стесняйтесь попробовать. Документация доступна здесь:

Alestic Git Server

Используя этот подход, вы можете иметь центральный сервер Git с частными хранилищами, работающими в считанные минуты. Существует кривая обучения для гитолита и EC2, если вы не знакомы с ними.

3
ответ дан 26 July 2018 в 22:12

Мне нравится гитолит.

Что касается вашего требования к нескольким пользователям:

Gitolite позволяет вам указывать разрешения не только с помощью репозитория (например, Gitosis), но также и именами ветвей или тегов в каждом репозитории. То есть вы можете указать, что определенные люди (или группы людей) могут только нажимать определенные «refs» (ветви или теги), но не другие.
9
ответ дан 26 July 2018 в 22:12
  • 1
    в книге, которую вы упомянули о ROCKS. Благодаря! – Paweł Karpiński 16 November 2010 в 19:30

Решение, которое работало лучше всего для меня, заключалось в настройке WebDAV.

sudo a2enmod sudo dav_fs sudo a2enmod dav добавить новый файл в /etc/apache2/sites-available и назвать его, например, git.yourserver.com. Отредактируйте его и добавьте следующие строки:

<VirtualHost *:80>

DocumentRoot /var/www/git.yourserver.com/repos ServerName git.yourserver.net Options Indexes FollowSymLinks MultiViews <Location /> DAV On AuthType Basic AuthName "git repos" AuthUserFile /var/www/git.yourserver.net/password.dav Require valid-user </Location>

</VirtualHost>

sudo a2enmod sudo dav_fs sudo chown www-data /var/www/git.yourserver.com/repos sudo a2enmod dav sudo chown root:www-data /var/www/git.yourserver.com/password.dav добавьте новый файл в /etc/apache2/sites-available и назовите его, например, git.yourserver.com. Отредактируйте его и добавьте следующие строки:

Теперь sudo a2ensite git.yourserver.com и sudo service apache2 restart.

sudo chown www-data /var/www/git.yourserver.com/repos cd myrepo.git sudo chown root:www-data /var/www/git.yourserver.com/password.dav git update-server-info

Теперь выйдите из своего удаленного сервера и перейдите в локальный каталог, в который вы хотите редактировать свои файлы.

git clone http://user_login:user_password@git.yourserver.com/myrepo.git

и вы - закончил он. Если вы хотите отправить свои измененные изменения на сервер:

git push origin master

Вы можете создать столько пользователей, сколько хотите, используя sudo htpasswd. Просто не забудьте использовать переключатель -c при добавлении большего количества пользователей, поскольку старый файл будет удален.

4
ответ дан 26 July 2018 в 22:12
  • 1
    HTTP - это "тупой" протокол, который поддерживается, но сильно обескуражен. Собственный протокол git работает намного лучше, и его проще настроить, поскольку все, что вам нужно сделать, это иметь рабочий сервер ssh (который вы уже должны) и установить git-core. Не нужно гадать с apache вообще. – psusi 16 April 2011 в 07:44

Этого очень легко достичь с помощью гитолита. Менее чем за час у вас будет простой настраиваемый и безопасный многопользовательский git-сервер.

У меня есть статья о статье gitolite

7
ответ дан 26 July 2018 в 22:12
  • 1
    примечание: в настоящее время я собираю готовые rvm, ree / ruby, rails, git tutorial для разработчиков и разработчика. он просто рисует много онлайн-уроков в одном месте и немного их модифицирует, но в настоящий момент это еще не все. – RobotHumans 11 November 2010 в 16:40
  • 2
    эти учебные пособия являются удивительными, но они довольно сложны. Разве нет «короче»? учебники? :) – Paweł Karpiński 12 November 2010 в 12:03
  • 3
    Я не видел ничего более простого ... большинство учебных пособий для gitorious и gitosis не проходят через создание образца проекта и тестирования (то, что я думаю, должно быть в каждом учебнике). Если я увижу другой, более прямой, я буду держать эту тему в голове – RobotHumans 12 November 2010 в 18:30
  • 4
    @ PawełKarpiński - Что с ними так сложно? Раньше я использовал настройку Gitosis, и на самом деле это очень просто. – Shauna 9 May 2012 в 23:08

Для всех моих настроек сервера Git я использую Gitolite, который позволяет обеспечить гранулярность безопасности доступа «на каждую ветвь». Настройка довольно проста, если вы делаете это на удаленном сервере, это так же просто, как запуск интерактивного скрипта. В дополнение к этой «простой в установке» природе он также имеет пакет в Natty и Maverick

sudo apt-get install gitolite

. Это не будет предоставлять веб-интерфейс, такой как Github или Gitweb, - но вы можете легко настроить и установите их поверх чего-то вроде Gitolite.

15
ответ дан 26 July 2018 в 22:12

Определенно следуйте официальной документации: https://help.ubuntu.com/community/Git (раздел «Настройка Git и управление проектами»)

6
ответ дан 31 July 2018 в 10:32

Мне также нравится gitolite подход для управления пользователями и безопасности. В настоящее время я тестирую сервер Git + gitolite AMI для EC2. Не стесняйтесь попробовать. Документация доступна здесь:

Alestic Git Server

Используя этот подход, вы можете иметь центральный сервер Git с частными хранилищами, работающими в считанные минуты. Существует кривая обучения для гитолита и EC2, если вы не знакомы с ними.

3
ответ дан 31 July 2018 в 10:32

Мне нравится гитолит.

Что касается вашего требования к нескольким пользователям:

Gitolite позволяет вам указывать разрешения не только с помощью репозитория (например, Gitosis), но также и именами ветвей или тегов в каждом репозитории. То есть вы можете указать, что определенные люди (или группы людей) могут только нажимать определенные «refs» (ветви или теги), но не другие.
9
ответ дан 31 July 2018 в 10:32
  • 1
    в книге, которую вы упомянули о ROCKS. Благодаря! – Paweł Karpiński 16 November 2010 в 19:30

Решение, которое работало лучше всего для меня, заключалось в настройке WebDAV.

sudo a2enmod sudo dav_fs sudo a2enmod dav добавить новый файл в /etc/apache2/sites-available и назвать его, например, git.yourserver.com. Отредактируйте его и добавьте следующие строки:

<VirtualHost *:80>

DocumentRoot /var/www/git.yourserver.com/repos ServerName git.yourserver.net Options Indexes FollowSymLinks MultiViews <Location /> DAV On AuthType Basic AuthName "git repos" AuthUserFile /var/www/git.yourserver.net/password.dav Require valid-user </Location>

</VirtualHost>

sudo a2enmod sudo dav_fs sudo chown www-data /var/www/git.yourserver.com/repos sudo a2enmod dav sudo chown root:www-data /var/www/git.yourserver.com/password.dav добавьте новый файл в /etc/apache2/sites-available и назовите его, например, git.yourserver.com. Отредактируйте его и добавьте следующие строки:

Теперь sudo a2ensite git.yourserver.com и sudo service apache2 restart.

sudo chown www-data /var/www/git.yourserver.com/repos cd myrepo.git sudo chown root:www-data /var/www/git.yourserver.com/password.dav git update-server-info

Теперь выйдите из своего удаленного сервера и перейдите в локальный каталог, в который вы хотите редактировать свои файлы.

git clone http://user_login:user_password@git.yourserver.com/myrepo.git

и вы - закончил он. Если вы хотите отправить свои измененные изменения на сервер:

git push origin master

Вы можете создать столько пользователей, сколько хотите, используя sudo htpasswd. Просто не забудьте использовать переключатель -c при добавлении большего количества пользователей, поскольку старый файл будет удален.

4
ответ дан 31 July 2018 в 10:32
  • 1
    HTTP - это "тупой" протокол, который поддерживается, но сильно обескуражен. Собственный протокол git работает намного лучше, и его проще настроить, поскольку все, что вам нужно сделать, это иметь рабочий сервер ssh (который вы уже должны) и установить git-core. Не нужно гадать с apache вообще. – psusi 16 April 2011 в 07:44

Этого очень легко достичь с помощью гитолита. Менее чем за час у вас будет простой настраиваемый и безопасный многопользовательский git-сервер.

У меня есть статья о статье gitolite

7
ответ дан 31 July 2018 в 10:32
  • 1
    примечание: в настоящее время я собираю готовые rvm, ree / ruby, rails, git tutorial для разработчиков и разработчика. он просто рисует много онлайн-уроков в одном месте и немного их модифицирует, но в настоящий момент это еще не все. – RobotHumans 11 November 2010 в 16:40
  • 2
    эти учебные пособия являются удивительными, но они довольно сложны. Разве нет «короче»? учебники? :) – Paweł Karpiński 12 November 2010 в 12:03
  • 3
    Я не видел ничего более простого ... большинство учебных пособий для gitorious и gitosis не проходят через создание образца проекта и тестирования (то, что я думаю, должно быть в каждом учебнике). Если я увижу другой, более прямой, я буду держать эту тему в голове – RobotHumans 12 November 2010 в 18:30
  • 4
    @ PawełKarpiński - Что с ними так сложно? Раньше я использовал настройку Gitosis, и на самом деле это очень просто. – Shauna 9 May 2012 в 23:08

Для всех моих настроек сервера Git я использую Gitolite, который позволяет обеспечить гранулярность безопасности доступа «на каждую ветвь». Настройка довольно проста, если вы делаете это на удаленном сервере, это так же просто, как запуск интерактивного скрипта. В дополнение к этой «простой в установке» природе он также имеет пакет в Natty и Maverick

sudo apt-get install gitolite

. Это не будет предоставлять веб-интерфейс, такой как Github или Gitweb, - но вы можете легко настроить и установите их поверх чего-то вроде Gitolite.

15
ответ дан 31 July 2018 в 10:32

Определенно следуйте официальной документации: https://help.ubuntu.com/community/Git (раздел «Настройка Git и управление проектами»)

6
ответ дан 2 August 2018 в 03:57

Мне также нравится gitolite подход для управления пользователями и безопасности. В настоящее время я тестирую сервер Git + gitolite AMI для EC2. Не стесняйтесь попробовать. Документация доступна здесь:

Alestic Git Server

Используя этот подход, вы можете иметь центральный сервер Git с частными хранилищами, работающими в считанные минуты. Существует кривая обучения для гитолита и EC2, если вы не знакомы с ними.

3
ответ дан 2 August 2018 в 03:57

Мне нравится гитолит.

Что касается вашего требования к нескольким пользователям:

Gitolite позволяет вам указывать разрешения не только с помощью репозитория (например, Gitosis), но также и именами ветвей или тегов в каждом репозитории. То есть вы можете указать, что определенные люди (или группы людей) могут только нажимать определенные «refs» (ветви или теги), но не другие.
9
ответ дан 2 August 2018 в 03:57
  • 1
    в книге, которую вы упомянули о ROCKS. Благодаря! – Paweł Karpiński 16 November 2010 в 19:30

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

Похожие вопросы: