Linux создает репозиторий кода Git и автоматическое развертывание

задняя часть сервер Git Linux

git

Git — это инструмент контроля версий для разработки ядра Linux. В отличие от инструментов централизованного управления версиями, таких как CVS и Subversion, он использует метод распределенной библиотеки версий и может управлять контролем версий без программного обеспечения на стороне сервера, что делает выпуск и передачу исходного кода чрезвычайно удобными. Git работает быстро, что, естественно, важно для больших проектов, таких как ядро ​​Linux. Самое лучшее в git — это его возможности трассировки слияний.

Объяснение git на вики, ссылка: https://zh.wikipedia.org/wiki/Git

ПостроитьGitМетод репозитория можно сгенерировать непосредственно локально, или вы можете создать сервер Git самостоятельно.В этой статье рассказывается, как создать репозиторий кода Git на сервере Linux. Давайте начнем!

Git server

  1. Создайте пользователя git (для подключения к git используется специальный пользователь git, ограниченный обработкой кода и другими операциями)
    $ adduser git
  1. optСоздать папку в каталогеcode
    $ mkdir /opt/code
  1. После входа в папку создайтеgit пустой склад
    $ cd code
    $ git init --bare test.git
  1. Просмотр структуры каталогов репозитория git
    $ cd test.git

目录

  • HEAD: указывает ветку, которая в настоящее время извлечена
  • config: содержит параметры конфигурации для конкретного проекта.
  • description: Только для использования программами GitWeb.
  • hooks: Содержит клиентские или серверные хуки-скрипты.
  • info: содержит глобальный файл исключения для размещения игнорируемых шаблонов, которые вы не хотите записывать в файл .gitignore.
  • objects: хранить все содержимое данных
  • refs: сохранить указатель на объект фиксации данных (ветвь)

Автоматическое развертывание функций

ВходитьhooksСоздайте функцию (хук, который автоматически вызывается при получении перевода) в , чтобы реализовать синхронное обновление исполняемого кода на стороне сервера при обновлении кода (этот шаг предназначен только для справки по схеме автоматического развертывания, а фактическая рабочая среда должна использоваться в соответствии с требованиями).

    $ cd hooks
    $ vim post-receive

Содержимое состоит в том, чтобы перезаписать указанный файл рабочей области, код выглядит следующим образом

#!/bin/bash
git --work-tree=/www/wwwroot/test checkout -f

В реальной ситуации вместо «/www/wwwroot/test» следует указать местоположение целевого проекта. Пользователь git в этом каталоге должен иметь разрешение

chown -R git:root /www/wwwroot/test

наконец датьpost-receiveразрешение на выполнение файла

chmod +x post-receive

Независимо от того, создается конкретный хук или нет, необходимо делать по-разному в зависимости от конкретной реализации проекта.регулировать, управление кодом некоторых крупных фабрик управляется выделенным сервером, сливается и выпускается в ветке веб-управления, развертывание в один клик и т. д., абстрагированиеУправление версиямиЭтот слой для релиза кода.Не знаю как у всех реализована итерация версий и управление ветками? (Если вы все еще перемещаете код вручную, вы можете попробовать реализовать собственное автоматическое развертывание~)

Git client

  1. заменить репозиторий (замените IP на IP-адрес репозитория)клонв новый каталог (доступный с клиентом git BASH) или непосредственно на сервере введитеgit clone /opt/code/test.git
    $ git clone git@IP:/opt/code/test.git
  1. Войдите во вновь созданный каталог, а затем создайте тестовый файл, код выглядит следующим образом
    $ cd test
    $ touch index.html
  1. Загрузил на склад, код такой
    $ git add .
    $ git commit -m 'create index.html'
    $ git push
  1. Войдите в ранее указанную папку рабочей области, чтобы проверить, успешно ли отправлен код, или клонируйте новый код, повторив шаг 1, если тестовый файл существует, он выполнен успешно.

Если возникает ошибка, это может быть связано с правами пользователя.chmodРазрешение на настройку команды может быть предоставлено пользователю git.

постскриптум

В настоящее время для управления кодом разработано множество инструментов (таких как svn, cvs) и доступны платформы для размещения кода (такие как Github, Gitlab).Другими словами, код подобен товару, а подходящее управление версиями похоже наВысокоавтоматизированныйкораблей, только небольшое количество членов экипажа может устойчиво вести корабль кновый маршрут, повысить эффективность и встретить новый век.

\(•ㅂ•)/♥ Вместе~