Как сделать свой репозиторий

Добавил пользователь Валентин П.
Обновлено: 10.09.2024

Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.

Что такое репозиторий

Это каталог в файловой системе, где хранится информация о проекте:

  • файлы и папки проекта
  • история проекта
  • настройки проекта
  • служебная информация

Информация о репозитории хранится в скрытой папке .git в корне проекта.

Можно ли работать с git локально

Да, можно. Но при этом проект находится только на нашей машине и в случае поломки железа или случайной потери данных мы не сможем восстановить проект.

Локальный репозиторий

Это репозиторий, который хранится на нашей машине, в рабочей папке проекта. Это та самая скрытая папка .git

Удаленный репозиторий, зачем он нужен

Это репозиторий, который хранится в облаке, на сторонних сервисах, специально созданных под работу с проектами git.

Плюсы удаленного репозитория

  • выполняет роль резервной копии
  • возможность работать в команде
  • некоторые дополнительные возможности, которые предоставляет хостинг. Например, визуализация истории или возможность работать над проектом прямо в веб-интерфейсе

Что такое клонирование

Это копирование удаленного репозитория на локальную машину. Обычно это первое действие при работе с проектом. При клонировании на нашу машину копируются файлы и папки проекта и вся его история. То есть мы получаем доступ к истории не с момента начала нашей работы над проектом, а с самого начала проекта.

Как клонировать готовый проект

Наберем в командной строке

При этом в текущем каталоге создастся папка vue, в ней окажутся все файлы проекта vue и специальная скрытая папка .git, то есть сам репозиторий, или информация о нем.

Как клонировать проект в другую папку

При клонировании по умолчанию создается папка с таким же названием, как и у репозитория. Но можно склонировать репозиторий и в другую папку вот так

Где vue-new - нужное название папки.

Свой удаленный репозиторий

Для своих проектов нам понадобится собственный репозиторий. Можно работать и локально, но плюсы удаленного мы уже рассматривали выше. Теперь нужно выбрать хостинг для наших git-проектов.

Где держать репозиторий

Есть множество вариантов, самые известные - это github и bitbucket. Нужно выбирать.

github или bitbucket

На самом деле не парьтесь. У них схожий функционал, и в начале работы с git мы не заметим разницы. bitbucket мне нравится больше из-за интерфейса, но в уроках выберем github из-за его большей популярности.

Как создать репозиторий в github

После регистрации создание репозитория доступно с главной страницы github. При создании нужно указать название проекта и тип (публичный или приватный). На остальное пока не обращаем внимания.

Права на репозиторий, публичные и приватные

Есть 2 типа репозиториев:

  • публичный (public), открыт всем
  • приватный (private), доступен только определенному кругу лиц - в первую очередь, нам самим

Публичные репозитории хороши для opensource-проектов и чтобы показать в резюме. Пока нам это не нужно.

Для себя будем создавать приватные репозитории. Для этого нам понадобятся ssh-ключи.

нельзя просто так клонировать приватный репозиторий

Что такое ssh-ключи

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

ssh-ключ не имеет прямого отношения к git, но так репозитории находятся на удаленных серверах, то ssh-ключи используются для разграничения доступа к приватным репозиториям.

ssh-ключ состоит из пары ключей: публичного и приватного ключа. Это просто 2 текстовых файла:

  • /домашний-каталог/.ssh/id_rsa.pub - публичный
  • /домашний-каталог/.ssh/id_rsa - приватный

Публичный ключ передается сторонним серверам, например, github, для открытия доступа на эти сервера. Приватный ключ хранится только на нашей машине и никому не передается. То есть когда у нас просят ssh-ключ, чтобы дать доступ на какой-нибудь сервер, мы отдаем именно публичный ключ, id_rsa.pub

Как сгенерировать ssh-ключ

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

Если видим файлы id_rsa и id_rsa.pub - отлично, ключи уже есть.

Если этих файлов нет, то нужно сгенерировать ключи утилитой ssh-keygen. В Windows она устанавливается вместе с git, в Linux и MacOS при необходимости установите. В Linux, например, вот так

После этого нужно сгенерировать пару ключей, запустив команду в терминале

Появились файлы id_rsa и id_rsa.pub - значит, ключи успешно сгенерированы.

Как добавить ssh-ключ в настройках github

Открываем публичный ключ id_rsa.pub и копируем его содержимое. В настройках github ищем раздел "SSH и GPG keys" - https://github.com/settings/keys. Жмем "New SSH key", задаем название ключа, например, имя, и вставляем форму публичный ключ, прямо текстом. Все, теперь у нас есть доступ к нашим приватным репозиториям.

Два способа создания проекта

Первый, когда мы начинаем новый проект. Удобнее будет создать репозиторий на github и склонировать пустой проект на локальную машину.

Второй, когда у нас уже есть проект. Нужно зайти в папку проекта и связать его с уже существующим репозиторием на github. Это называется инициализация.

Рассмотрим оба способа.

Пустой проект

Идем в командную строку и запускаем

В текущей папке получим новую папку с названием first-site - это и есть наш проект.

P.S. У вас склонировать этот репозиторий не получится - он закрытый. Создайте свой :-)

Непустой проект

Допустим, у нас на локальной машине уже есть проект second-site. Создаем в github репозиторий second-site. Заходим в папку проекта и выполняем команды

Все, можно приступать к работе над проектом. Команды add, commit и push мы разберем в следующих уроках.

Это единственный урок, в котором мы разбирались с тонкостями репозиториев. В дальнейшем будем считать, что репозиторий = проект.

Что могу посоветовать

  • github или bitbucket? Для личных проектов неважно, оба сервиса разрешают бесплатно создавать приватные репозитории. Для open source или резюме - github
  • не увлекайтесь клонированием в папку со своим названием. Есть шанс запутаться, самому или коллегам
  • не путайте публичный и приватный ключи. Отдаем вовне только публичный ключ id_rsa.pub
  • при смене рабочей машины можно не генерировать ssh-ключи заново, а скопировать их со старой машины. Тогда не придется заново прописывать новые ключи на серверах

Немного подробнее о копировании ssh-ключей

Как скопировать ssh-ключи с одной машины на другую

Хочу немного затронуть эту тему отдельно. Генерировать ключ на новой машине не обязательно. Но нужно выполнить такие действия

Ссылки, которые могут пригодиться

На этом все. В следующем уроке мы сделаем первые изменения в проекте и начнем понимать, в чем заключается прелесть git.

Я хотел бы создать свой локальный репозиторий в своей локальной сети, чтобы машины в локальной сети могли обновляться и обновляться с него. Я хочу загрузить пакеты и сохранить их на своем локальном сервере, чтобы я мог обновлять, обновлять, устанавливать и т. Д. С него, не используя Интернет.

Я не думаю, что это дубликат. Maythux хочет создать собственный сервер репозитория для использования с aptitude. Keryx заменяет aptitude в качестве менеджера пакетов и создает внешние источники для пакетов.

Есть 4 шага для создания простого репозитория для себя

1.Install dpkg-dev
2.Put пакеты в каталоге
3.Create скрипт , который будет проверять пакеты и создать файл обновления APT-GET можно прочитать
4. Добавьте строку в sources.list , указывая на вашем хранилище

Установите dpkg-dev

Введите в терминале

Справочник

Создайте каталог, в котором вы будете хранить свои пакеты. Для этого примера мы будем использовать /usr/local/mydebs.

Теперь переместите ваши пакеты в каталог, который вы только что создали.

Ранее загруженные пакеты обычно хранятся в вашей системе в /var/cache/apt/archives каталоге. Если вы установили apt-cacher, у вас будут дополнительные пакеты, хранящиеся в его каталоге / packages.

Скрипт обновления-mydebs

Это простой три лайнера:

Вырежьте и вставьте вышеперечисленное в gedit и сохраните его как update-mydebs в ~ / bin. (тильда '~' означает ваш домашний каталог. Если ~ / bin не существует, создайте его: Ubuntu поместит этот каталог в вашу PATH. Это хорошее место для размещения личных сценариев). Затем сделайте скрипт исполняемым:

dpkg-scanpackages просматривает все пакеты в mydebs, и выходные данные сжимаются и записываются в файл (Packages.gz), который может прочитать обновление apt-get (см. ниже ссылку, которая объясняет это в мучительных подробностях). / dev / null - пустой файл; он заменяет файл переопределения, который содержит некоторую дополнительную информацию о пакетах, которая в этом случае на самом деле не нужна. Смотрите deb-override (5), если вы хотите знать об этом.

sources.list

добавить строку

на ваш /etc/apt/sources.list, и все готово.

CD вариант

Вы можете записать каталог, содержащий debs, на CD и использовать его как хранилище (хорошо для совместного использования между компьютерами). Чтобы использовать компакт-диск в качестве хранилища, просто запустите

Использование репозитория

Всякий раз, когда вы помещаете новый deb в каталог mydebs, запускайте

Теперь ваши локальные пакеты можно манипулировать с помощью команд Synaptic, aptitude и apt: apt-get, apt-cache и т. Д. Когда вы пытаетесь установить apt-get, любые зависимости будут разрешены для вас, если они будут выполнены. ,

Плохо сделанные пакеты, вероятно, потерпят неудачу, но вы не переживете ад dpkg.

Не могли бы вы объяснить синтаксис в строке dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz . Что /dev/null там происходит. Я тоже читал справочную страницу, но это было не совсем понятно.

@ blade19899 Мне нужно немного разъяснений, пожалуйста. Мне нужен репозиторий с несколькими избранными пакетами, а не с каждым, к которому я когда-либо прикасался. Я прав, что эта техника даст мне эту способность? Цель здесь - создать репозиторий, который группа установки программного обеспечения может использовать в изолированной ЛВС, вдали от соблазнов apt-get ненужного.

Azure DevOps Services и проекты TFS содержат репозитории Git, рабочие элементы, сборки и выпуски. Вы можете использовать git репозиториев в своих проектах для управления исходным кодом по мере роста проекта. в этом руководство показано, как создать репозиторий Git с помощью веб-портала для Azure DevOps Services (размещенного в Azure) или Team Foundation Server (TFS-on-the локальной сети).

Предварительные условия

  • Организация в Azure DevOps. Если у вас ее нет, вы можете зарегистрироваться на нее бесплатно. Каждая организация включает бесплатные, неограниченные частные репозитории Git.
  • Необходимо иметь разрешение Создание репозитория , которое по умолчанию предоставляется администраторам проектов. Дополнительные сведения см. в разделе Set Git Repository Permissions.
  • Средства командной строки Git:
      , включая диспетчер учетных данных git .
      • Для macOS и Linux рекомендуется настроить проверку подлинности SSH .

      Создание репозитория с помощью веб-портала

      перейдите к странице Repos в проекте, перейдя в , наведя указатель мыши на имя проекта и выбрав значок Repos . Вы можете выбрать его из списка все проекты или из списка последних проектов, если вы недавно получили к нему доступ.

      Select project

      В раскрывающемся списке репозиторий выберите создать репозиторий.

      Manage repositories

      В диалоговом окне Создание нового репозитория убедитесь, что Git является типом репозитория, и введите имя нового репозитория. Также можно добавить файл README и создать. gitignore для типа кода, который планируется управлять в репозитории. Файл сведений содержит сведения о коде в репозитории. Файл . gitignore сообщает Git, какие типы файлов следует игнорировать, например временные файлы сборки из среды разработки.

      Set options for your new repo in the Create a Git repo dialog

      Когда вы довольны именем репозитория и вариантами выбора, выберите создать.

      Теперь в проекте создается новый пустой репозиторий Git.

      • Если вы создали пустой репозиторий без файлов README или. gitignore, вы увидите инструкции о том, как клонировать репозиторий на компьютер. Вы также увидите инструкции по принудительной передаче кода в существующий репозиторий в созданный.
      • В этом примере вы создали файл README и. gitignore. Теперь вы увидите обзор файлов в репозитории. Вы можете клонировать репозиторий, используя ссылку клон в правом верхнем углу страницы, чтобы немедленно начать работу с локальной копией репозитория.

      Select project

      в области Project на веб-портале выберите код, а затем щелкните раскрывающийся список рядом с именем текущего репозитория и выберите создать репозиторий.

      Choose new repository from the web portal

      В диалоговом окне Создание нового репозитория убедитесь, что Git является типом репозитория, и введите имя нового репозитория. Также можно добавить файл README и создать. gitignore для типа кода, который планируется управлять в репозитории. Файл сведений содержит сведения о коде в репозитории. Файл . gitignore сообщает Git, какие типы файлов следует игнорировать, например временные файлы сборки из среды разработки.

      Set options for your new repo in the Create a Git repo dialog

      Когда вы довольны именем репозитория и вариантами выбора, выберите создать.

      Теперь в проекте создается новый пустой репозиторий Git.

      • Если вы создали пустой репозиторий без файлов README или. gitignore, вы увидите инструкции о том, как клонировать репозиторий на компьютер. Вы также увидите инструкции по принудительной передаче кода в существующий репозиторий в созданный.
      • В этом примере Вы создали файл README и. gitignore. Теперь вы увидите обзор файлов в репозитории. Вы можете клонировать репозиторий, используя ссылку клон в правом верхнем углу страницы, чтобы немедленно начать работу с локальной копией репозитория.

      Клонирование репозитория на компьютер

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

      в веб-браузере откройте командный проект для своей организации в Azure DevOps и выберите Repos файлы. Если у вас нет командного проекта, создайте его сейчас.

      Repos files

      Выберите клонировать в правом верхнем углу окна файлы и скопируйте URL-адрес клона.

      Retrieve the clone URL

      Откройте командное окно Git (git Bash в Git для Windows). Затем перейдите к папке, в которой должен находиться код из репозитория, хранящегося на компьютере. Запустите git clone , за которым следует путь, скопированный из git clone в предыдущем разделе, как показано в следующем примере.

      Git загружает копию кода в новую папку для работы с. Загрузка включает все фиксации и ветви из репозитория.

      Переключите каталог в репозиторий, который вы клонированы.

      Не закрывайте это окно командной строки, так как вы будете использовать его в следующих шагах.

      Выберите клонировать в правом верхнем углу окна кода и скопируйте URL-адрес клона.

      Retrieve the clone URL

      откройте командное окно git (git Bash в git для Windows), перейдите к папке, в которой должен находиться код из репозитория, хранящегося на компьютере, и выполните git clone путь, скопированный с git clone на предыдущем шаге, как показано в следующем примере.

      После выполнения предыдущей команды git загрузит копию кода в новую папку для работы с. Эта загрузка включает все фиксации и ветви из репозитория.

      Не закрывайте это окно командной строки, так как оно будет использоваться в следующих шагах.

      Работа с кодом

      На этом шаге мы изменим файлы на своем компьютере, зафиксируйте изменения локально, отправите фиксацию в репозиторий на сервере и просмотрите изменения в нем.

      Перейдите в папку на компьютере, где был клонирован репозиторий, и откройте README.md файл в любом редакторе.

      Внесите некоторые изменения, например добавьте This is my first edit. в файл, сохраните и закройте файл.

      В окне командной строки Git перейдите к fabrikam-fiber каталогу, введя следующую команду:

      Зафиксируйте изменения, введя следующую команду в командном окне Git:

      Отправьте изменения в репозиторий Git, введя следующую команду в командное окно Git:

      Вернитесь на веб-портал и выберите в представлении кода пункт Журнал , чтобы просмотреть новую фиксацию. Новый репозиторий имеет две фиксации. Первый — это фиксация, в которой были добавлены файл README и. gitignore при создании репозитория. Вторая — это только что сделанная фиксация.

      View commit history

      Перейдите на вкладку файлы и выберите файл сведений для просмотра изменений.

      Как только Вы создали эккаунт на GitHub (см. статью "Как зарегистрироваться на GitHub"), перед Вами должно появиться похожее окно:

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

      Но сейчас, давайте начнем с основ. Сверху слева находится поисковая строка:


      Справа вверху - небольшое меню:


      Колокольчик - это уведомления.

      Если нажать на иконку справа, появится меня для управления учётной записью:

      Если же нажать на плюс, откроется выпадающее меню:

      Как видите, можно:

      • создать новый репозиторий ("New repository")
      • импортировать репозиторий ("Import repository")
      • новый gist ("New gist") - что-то наподобие статьи в блог
      • новая организация ("New organisation") - например, Вы можете создать организацию, с которой можно связывать учётные записи на GitHub.

      Три способа создать репозиторий на GitHub:

      Cпособ 1: нажать на "New repository".

      Способ 2: нажать на большую кнопку "Start a project" ("Создать проект"):


      Способ 3: нажать на зеленую кнопку "New repository" ("Новый репозиторий") в окошке Repositories ("Репозитории"):


      Создаем репозиторий на GitHub

      Вы уже знаете три способа создать новый репозиторий! ? Тогда создайте репозиторий, использовал любой из 3 способов.

      Создали? Отлично, тогда Вы должны увидеть вот такую страницу:


      Отлично! Давайте разберем по частям.

      Сверху, Вы видите собственника репозитория ("Owner"), и название репозитория ("Repository name"). Давайте назовем его "first-repo":


      Как выбирать имя для репозитория

      В языке Java есть определенные Naming Conventions (Code Conventions), т.е. соглашение о том, как нужно называть переменные, классы, методы и т.д. Как Вы наверное помните, в Java принято использовать CamelCase (по-другому CamelStyle).

      На GitHub таких правил нет. Тем не менее, часто можно увидеть запись через дефис (как сделали мы), или тем же CamelCase.

      Для примера, можно посмотреть на репозитории:

      Вот так выглядит репозиторий Google.


      Если Вы просмотрите эти репозитории, то увидите, что чаще всего названия из нескольких слов записываются через дефис, или CamelCase.

      Возвращаемся к созданию репозитория

      Итак, дальше идёт описание ("Description"). Писать его не обязательно (справа от "Description" серым написано слово "optional"). Но если Вы хотите чтобы работодатель, который будет смотреть на Ваш аккаунт, или другие программисты, смогли понять о чём идёт речь и оценили Вашу работу, желательно подробно описывать проекты. В частности, это можно сделать с помощью README (об этом позже).

      В описании давайте напишем "Первый проект на Git":


      Затем мы можем выбрать, будет ли наш проект публичным (т.е. все смогут его видеть), или приватным. Как Вы помните, на бесплатных аккаунтах GitHub предоставляет безграничное хранилище только для публичных проектов.


      На этом мы можем остановиться и нажать большую зеленую кнопку "Создать репозиторий" ("Create repository"). Тем не менее, есть еще несколько настроек, которые мы можем сделать.


      Во-первых, Вы видите галочку "Initialise this repository with a README" (Создать репозиторий с README). README - это еще один способ рассказать людям, просматривающим Ваш репозиторий, о Вашем проекте.

      Хорошо расписанные README будет выглядет примерно так:

      Но написание таких файлов - отдельная наука. Файл README имеет расширение .md, свой синтаксис и метки. Подробнее то, как следует писать файл README, мы рассмотрим в следующих статьях.

      Кроме создания README, у нас есть еще две опции - добавлять ли файл .gitignore (по умолчанию None - не добавлять), и добавлять ли лицензию (по умолчанию тоже None).

      Про то, что такое файл .gitignore, мы поговорим в следующих статьях. В двух словах, это файл, который говорит GIT, какие файлы следует игнорировать при загрузке.

      Также, Вы потенциально можете добавить лицензию к своему проекту:

      Дело в том, что на GitHub размещают много open-source проектов, то есть бесплатных программ с открытым кодом. Интересно, что обычно лицензия используется не для того, чтобы ограничить доступ в проекту, а наоборот, чтобы позволить другим людям использовать Ваш код. Когда Вы ничего не указываете в поле "лицензия", использование кода из репозитория считается кражей.

      Итак, отлично! Мы разобрались с основными полями, которые надо заполнить. Теперь, нажмем большую зеленую кнопку "Создать репозиторий" ("Create repository").

      Теперь Вы должны видеть перед собой похожую страницу:

      Вот мы и создали свой первый репозиторий на GitHub. Теперь он появится у Вас в разделе "Репозитории" на главной странице:


      Теперь мы можем загружать проекты из компьютера на удаленный репозиторий на GitHub. О том, как это делать, мы поговорим в следующих статьях.

      Спасибо, что были с нами! ?

      Надеемся, что наша статья была Вам полезна. Можно записаться к нам на курсы по Java на сайте.

      Читайте также: