Проект Эйлера блог
Ссылка на github

Выделение CSS-настроек в отдельный репозиторий

Project-Euler-CSS - это CSS-настройки для моего блога Project-Euler-Blog. Выделение CSS-настроек в отдельный репозиторий позволяет использовать их повторно в разных проектах и избавляет от необходимости вносить одни и те же изменения в каждый проект.

Подключение Git-подмодуля репозитория

Чтобы подключить репозиторий project-euler-css, как Git-подмодуль репозитория project-euler-blog нужно зайти в проект...

  project-euler-blog/
  └── index.html

И ввести команду:

git submodule add https://github.com/AlexandrAnatoliev/project-euler-css.git src/styles

Структура после добавления связанного репозитория:

  project-euler-blog/
  ├── src/
  │   └── styles/          # Это связанный репозиторий
  │       └── main.css
  ├── index.html
  └── .gitmodules

В HTML файл проекта (index.html) необходимо добавить ссылку на файл внутри подмодуля (main.css):

<link rel="stylesheet" href="src/styles/main.css">

Клонирование репозитория с Git-подмодулем

При клонировании репозитория необходимо использовать флаг --recursive:

git clone --recursive https://github.com/AlexandrAnatoliev/project-euler-blog.git

Иначе при обычном клонировании папка src/styles будет пустой:

git clone https://github.com/AlexandrAnatoliev/project-euler-blog.git
cd project-euler-blog
ls src/styles/  # пусто или не существует

В этом случае нужно инициализировать и обновить подмодули:

git submodule init    
git submodule update 

Обновление подмодуля до последней версии

Перейти в папку подмодуля:

cd src/styles

Обновиться до последнего коммита в ветке main:

git checkout main
git pull

Вернуться в основной репозиторий:

cd ../..

Зафиксировать изменение (новую ссылку на коммит):

git add src/styles
git commit -m "Update css to latest version"

Для контрибьютеров

Инструкции по Установке

1. Сделайте "форк" этого репозитория нажатием кнопки "Fork" в правом верхнем углу страницы. Это создаст копию репозитория на Вашем GitHub аккаунте.

2. Клонируйте Ваш "форкнутый" репозиторий нажатием кнопки "Code".
Откроется маленькое окно. Скопируйте из него URL и выполните на своем компьютере команду:

git clone https://github.com/<your-username>/project-euler-css.git

3. Перейдите в папку с проектом:

cd project-euler-css

4. Добавьте ссылку на оригинальный репозиторий для будущих обновлений:

git remote add upstream https://github.com/AlexandrAnatoliev/project-euler-css.git

Примечание: Здесь должен быть URL оригинального репозитория, а не "форкнутого" вами, так что username в нем должно быть AlexandrAnatoliev, а не ваш собственный username.

5. Проверьте ремоуты для своего репозитория:

git remote -v

Вы должны увидеть origin (создается автоматически при клонировании) и upstream-ремоуты:

origin  https://github.com/<your-username>/project-euler-css.git (fetch)
origin  https://github.com/<your-username>/project-euler-css.git (push)
upstream        https://github.com/AlexandrAnatoliev/project-euler-css.git (fetch)
upstream        https://github.com/AlexandrAnatoliev/project-euler-css.git (push)

6. Выполните pull из upstream репозитория в Вашу master ветку, чтобы синхронизировать ее с основным проектом:

git pull upstream master

7. Создайте новую ветку командой:

git switch -c fix-issue

Сейчас вы готовы начать работать с issue.
Помните: каждый раз сначала делать pull из upstream репозитория, чтобы держать содержимое вашего локального репозитория в соответствии с главным проектом.

Примечание: Рекомендую всегда создавать новую ветку для каждого issue, который вы выполняете! Иначе pull request будут слишком большими и возможно возникнут конфликты слияния.

Отправка ваших изменений

После того как вы решили проблему, вы готовы отправить изменения.

1. Добавьте ваши изменения в отслеживание:

git add файлы-которые-вы-изменили

2. Сделайте коммит:

git commit -m "Fixed issue"

3. Отправьте изменения в ваш "форкнутый" репозиторий:

git push origin fix-issue

После того как вы отправили Ваши изменения на GitHub, вы готовы создать pull request. Перейдите на Ваш "форк" репозитория на GitHub.

Поздравляю, вы сделали свой вклад в open source на GitHub!
Можете расслабиться и подождать пока не сделают ревью вашего кода. Если все хорошо, ваш pull request вольют в основную ветку. Если нет, вам будет предложено внести изменения в ваш код.

Примечание: Помните, что нужно подождать ревью Вашего pull request, не закрывайте его сами. Если Вас просят сделать изменения, вы можете коммитить их в ту же самую ветку, не нужно закрывать текущий pull request и открывать новый.

Контакты

Столкнувшись с затруднениями, не стесняйтесь открыть issue, написать в Discussions или мне на почту per-1986@list.ru.