Перейти к содержанию

GitHub для самых маленьких


Рекомендуемые сообщения

Опубликовано

Регистрация на GitHub

 

 

Открываем https://github.com/ и жмем Sign up для регистрации

J0yliIRlVUo.jpg?size=1248x608&quality=95

 

Вписываем наше мыло, пароль, юсернейм/ник/логин и прожимаем Continue. Потом он нас спросит, хотим ли мы получать всякую рассылку на почту? пишем в ответ n

09tLq4pixFU.jpg?size=1248x662&quality=95

 

Тут у нас капча, нажимаем Проверить и выбираем правильные варианты

QiWxb5YNt-o.jpg?size=633x428&quality=95&

64vsU40ofs4.jpg?size=651x425&quality=95&

GX25PA6vdYY.jpg?size=666x430&quality=95&

 

Нажимаем Create account и у нас появится поле для ввода кода

X3QZIBy_D9o.jpg?size=651x473&quality=95&

n9HhIPyOQog.jpg?size=610x306&quality=95&

 

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

9qsorNP6Agc.jpg?size=959x762&quality=95&

 

После подтверждения регистрации, гитхаб предложит сделать персонализацию, но мы этого делать не будем и нажмем Skip personalization

89IlJziOUV0.jpg?size=1277x875&quality=95

 

Все, регистрация окончена и у нас открывается наш дашбоард, в котором мы будем видеть информацию по отслеживаемым проектам

bncB7-qYvw8.jpg?size=1253x829&quality=95

 

 

 

Опубликовано

Настройка уведомлений

 

 

Если мы нехотим чтобы наш почтовый ящик засрало уведомлениями, то идем в Настройки

6XcKg0XqH58.jpg?size=1259x569&quality=95

 

Переходим к Уведомлениям

qDhdcV50ces.jpg?size=1267x889&quality=95

 

Выставляем галки как на скриншотах

cxHZX_N_q5c.jpg?size=1261x903&quality=95

_W4vsCPUxCY.jpg?size=1245x787&quality=95

 

 

 

Опубликовано

Работа с issues

 

 

Переходим на странице проекта в issues

fgFCUPM3Pf8.jpg?size=1256x732&quality=95

 

и нажимаем New issue

gDHdrWyNi5k.jpg?size=1254x653&quality=95

 

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

NVQXA2Zhczo.jpg?size=1252x581&quality=95

 

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

-u1XeJE8cqM.jpg?size=1252x773&quality=95

 

Далее мы заполняем все что от нас просят и прикрепляем файлы кликая в обведенное место. Заполнять желательно на Английском языке, но если тема крайне сложная и с большим объемом текста, то можно и на родном языке писать. Если будете вставлять ссылки на сторонние сайты содержащие пиратский контент, то вставляйте ссылку как кусок кода между двух грависов `h t t p s://rutracker.org/`

grVnT0Cr-GI.jpg?size=1254x734&quality=95

 

Нажимаем Preview для проверки нашей деятельности и если все устраивает нажимаем Submit new issue. Периодически проверяйте свою тему/багрепорт, у разработчиков могут быть вопросы к вам.

MWyYxOnlkT4.jpg?size=1261x913&quality=95

 

 

 

Опубликовано

Описание элементов интерфейса

 

  • Страница проекта, состоит из имя_владельца/название_репозитория
  • Откуда был форкнут(скопирован) проект, состоит из имя_владельца/название_репозитория
  • Клик на Watch открывает настройки отслеживания проекта, клик на значение показывает тех кто отслеживает проект
  • Клик на Star добавляет проект в закладки на случай если вы планируете сюда еще вернуться, клик на значение показывает тех кто добавил себе в закладки
  • Клик на Fork создает копию проекта с вашим именем и полными правами доступа, клик на значение показывает дерево форков в котором вы можете понять кто и у кого скопировал
  • Вкладка Code отображает ветки, теги, файлы, коммиты, описание проекта
  • Вкладка Issues отображает минифорум на котором постятся багрепорты, предложения по улучшению и задаются вопросы разработчикам. Иногда разработчики используют Issues как систему тикетов и планов на будущее в разработке.
  • Вкладка Pull requests отображает запросы на внесение изменений в проект и сами изменения
  • Вкладка Discussions отображает полноценный форум, но он нигде практически не используется, так как всем хватает Issues
  • Вкладка Actions отображает магию с запуском виртуалок в которых автоматически происходит тестирование, компиляция и сборка проекта
  • Вкладка Projects отображает тикеты и планы по разработке, но обычно для подобных целей используют Issues
  • Вкладка Wiki отображает документацию к проекту, при условии что разрабы не забили болт на это дело
  • Вкладка Security отображает политики безопасности для проекта, также там происходит анализ, поиск опасных кусков кода и дырявых зависимостей
  • Вкладка Insights отображает графики, статистику, деревья форков и зависимостей
  • Вкладка Settings отображает настройки проекта, права доступа, смену владельца и удаление проекта
  • branches это ветки проекта, обычно основной и стабильный код содержится в ветке master или main, а эксперементальный код в dev, develop, experimental. Бывает что и по другому эти ветки используют.
  • tags обычно используются для обозначения версии при публикации новых релизов, но если очень хочется то можно отмечать ими интересные коммиты(изменения?)
  • about краткое описание проекта, может содержать в себе "топики" для поиска схожих проектов
  • В этом блоке мы можем увидеть количество коммитов(изменений?) которое отличает наш форк(копию) от апстрима(оригинала). Через Сontribute мы можем сделать Pull request(запрос на внесение изменений) и отправить наши коммиты(изменения?) в апстрим(оригинал) или в другой бранч(ветку). Через Fetch upstream мы можем перенести коммиты(изменения?) из апстрима(оригинала) в наш форк(копию)
  • В этом блоке мы видим пользователя сделавшего последний коммит в проект, кликабельный заголовок коммита, правее идет кусок хеша коммита и дата
  • commits при клике отобразит коммиты для данного баранча(ветки) проекта с момента его создания
  • Каталоги и файлы проекта. Два основных файла у проекта это LICENSE.md и README.md, расширение .md означает разметку markdown. Шаблоны для Issues и конфиги для Actions находятся в каталоге .github
2lZ_t23bXJs.jpg?size=1259x819&quality=95

 

 

 

Опубликовано

Создаем и удаляем fork(копию) проекта

 

 

На странице проекта с которым мы планируем работать, нажимаем Fork

SftN9Q65ITc.jpg?size=1241x819&quality=95

 

Ждем несколько секунд

Fe3w7EZYi8o.jpg?size=1267x533&quality=95

 

Все, мы сделали fork(копию) проекта и можем вносить в него изменения. Обратите внимание что у нашей копии отсутствует вкладка Issues

ARaXOP0l5Fc.jpg?size=1255x827&quality=95

 

Для удаления нашего forka(копии) переходите на вкладку Settings, отматывайте страницу в самый низ и нажимайте Delete this repository

pssSrVHMTKI.jpg?size=1251x777&quality=95

 

Скопируйте в поле имя_владельца/название_репозитория и подтвердите что хотите удалить репозиторий

KiSENx5ND_I.jpg?size=1241x801&quality=95

 

 

 

Опубликовано

Редактируем файлы через веб интерфейс GitHuba

 

 

Находим в каталогах нашего форка файл/скрипт который хотим отредактировать и нажимаем на значек карандашика

YFvrQvN70ck.jpg?size=1253x891&quality=95

 

Вносим правки и проверяем результат в Preview changes. Если нас все устраивает, то заполняем заголовок и описание Commit changes на Английском, можно еще добавить ссылку на тему в Issues. После того как закончили редактировать и оформлять, нажимаем Commit changes

J1ctvBmHUP0.jpg?size=1253x913&quality=95

 

Если мы в коммит вставили ссылку на тему в Issues, то там появится вот такое упоминание

HTnpmXCdCq8.jpg?size=1245x773&quality=95

 

 

 

Опубликовано

Делаем pull request(запрос на внесение изменений)

 

 

После того как мы наделали правок в нашем форке и считаем что решили одну проблему или баг, нажимаем Contribute и Open pull request

AEzVRGeb7LA.jpg?size=1257x811&quality=95

 

Перед нами Comparing changes, мы можем выбрать направление пуллреквеста в Base Repository из Head Repository, стрелочка между ними подсказывает направление. Оставляем все как есть и убеждаемся что появилась надпись Able to merge. These branches can be automatically merged. которая означает что никаких проблем не должно возникнуть. Нажимаем Create pull request

eYPf7EUX7Ag.jpg?size=1243x913&quality=95

 

Видим форму Open pull request в которую вставился текст из нашего коммита. Если тема в Issues отсутствует для даных правок, то прикрепите сейвы чтобы можно было проверить результат до и после. Нажимаем Create pull request. Ваши правки могут отклонить по разным причинам, но основная причина это небольшие проблемы с тем что правки надо делать в два репозитория UPU и RPU

BHkCODCZNgA.jpg?size=1241x917&quality=95

 

Если мы в пуллреквест вставили ссылку на тему в Issues, то там появится вот такое упоминание. Рекомендую вставлять ссылку только в пуллреквест, так вы не засорите тему упоминанием коммитов из вашего временного форка.

u-Bjff4yr3Q.jpg?size=1241x781&quality=95

 

 

 

Опубликовано

Устанавливаем Git for Windows Portable и TortoiseGit

 

 

Скачиваем 64-bit Git for Windows Portable https://git-scm.com/download/win и запускаем установщик от админа

eU7xIiJ3DrA.jpg?size=625x401&quality=95&

 

Проверяем путь установки и нажимаем ОК

dpVQYCFPn24.jpg?size=356x159&quality=95&

 

 

 

Скачиваем 64-bit TortoiseGit https://tortoisegit.org/download/ запускаем установщик и жмем Next

R6d1-F8v7Xc.jpg?size=495x387&quality=95&

 

Жмем Next

Td1Yvk-u8eE.jpg?size=495x387&quality=95&

 

Жмем Next

CG0KnPr1Yng.jpg?size=495x387&quality=95&

 

Жмем Install

hVFu8JnL8pU.jpg?size=495x387&quality=95&

 

Жмем Finish

22-rESqpMdg.jpg?size=495x387&quality=95&

 

Жмем Далее

23viLiPPWnI.jpg?size=506x470&quality=95&

 

Жмем Далее

UW0EiDsft1E.jpg?size=506x470&quality=95&

 

Проверяем путь к Git\bin, жмем Check now и жмем Далее

BX92dfSCBGs.jpg?size=506x470&quality=95&

 

Ставим чекбокс на Don't store these settings now и жмем Далее

tMnG8VpGKnQ.jpg?size=506x470&quality=95&

 

Жмем Готово и советую перезагрузить компьютер

44OF_j4O_sI.jpg?size=506x470&quality=95&

 

 

 

Опубликовано

настолько банальные вещи, что тошно смотреть, особенно вот про установку)).

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

Опубликовано

Делаем git clone


На странице нашего форка жмем кнопку Code и копируем https ссылку
NfMJ2knJj-4.jpg?size=1255x823&quality=95

В отдельном каталоге открываем контекстное меню правой кнопкой мыши и нажимаем Git Clone
r-DZEn28mcU.jpg?size=774x572&quality=95&

Проверяем что ссылка из буфера обмена вставилась в URL поле открывшегося окна и нам предложили подходящий каталог, после чего нажимаем ОК
hIGd0GGu4S0.jpg?size=630x441&quality=95&

Ждем когда все скачается
aaX37La4HwM.jpg?size=581x386&quality=95&

При успешном завершении закачки, мы увидем чтото вот такое
o166wQytUbI.jpg?size=581x386&quality=95&

 

Опубликовано

Делаем первый git commit

 

 

После правок файлов в нашей локальной копии проекта, открываем контекстное меню правой кнопкой мыши у каталога и нажимаем Git Commit

BdisQSKgFq0.jpg?size=781x797&quality=95&

 

И внезапно TortoiseGit ругается сообщая нам что надо прописать username и email, так как они являются частью коммитов. Просто нажимаем Да

ee104DRJ9A8.jpg?size=343x152&quality=95&

 

Тут нам рассказывают про локальные(для репозитория), глобальные(для пользователя) и системные(для всех пользователей) конфиги. Просто нажимаем ОК

SeVDQh1zByI.jpg?size=352x223&quality=95&

 

Вписываем наш GitHubовский username и email, а потом прожимаем Применить и ОК. Тут вы можете заметить те самые Local, Global, System. Советую использовать Global, так вам не придется повторно прописывать username и email при работе с другими репозиториями

4TYV0jZqZH4.jpg?size=773x628&quality=95&

 

Заполняем заголовок и описание коммита на Английском и нажимаем Commit

5fPaV7YbbPU.jpg?size=685x606&quality=95&

 

Жмем Close

D9nV8iouEns.jpg?size=581x386&quality=95&

 

 

 

Опубликовано

Делаем первый git push


После того как наделали коммитов, открываем контекстное меню в каталоге проекта и нажимаем Push
PcBLoranl3A.jpg?size=781x803&quality=95&

Тут оставляем все как есть и нажимаем ОК
rH3wCPJCoFU.jpg?size=546x551&quality=95&

Но тут вместо отправки наших коммитов на GitHub, нас просят авторизоваться. Выбираем manager-core
ad89kEHJb8E.jpg?size=386x473&quality=95&

Жмем Sign in with your browser
qsO0pbQPhqE.jpg?size=414x363&quality=95&

Жмем Authorize
skaW_lQ881Y.jpg?size=1269x875&quality=95

Подтверждаем введением пароля
vQGl6Ew4aqY.jpg?size=1275x579&quality=95

Закрываем вкладку после успешной авторризации
KBv1LbePUGI.jpg?size=1275x503&quality=95

Нашм коммиты отправились на GitHub, нажимаем Close
iaJvDQihVCY.jpg?size=581x386&quality=95&

Можем сходить на GitHub и проверить результат
5_PUnERNcEY.jpg?size=1251x589&quality=95

 

Опубликовано

Удаляем коммиты

 

 

Последовательное удаление коммитов с конца(рекомендуемый вариант)

Например у нас вот такая ситуация и мы хотим удалить два последних коммита(пятый и четвертый)

VbwxLBPOyms.jpg?size=1245x881&quality=95

 

Для начала сделаем git pull и выкачаем все изменения с GitHubа

Bu3F599WvuU.jpg?size=781x809&quality=95&

 

Оставляем все как есть и нажимаем ОК

Ra48LIjPC5c.jpg?size=574x450&quality=95&

 

Все удачно скачалось, нажимаем Close

_4Rw0A5_5Uo.jpg?size=581x386&quality=95&

 

Нажимаем Show log

nTZ8V3iVZnc.jpg?size=777x801&quality=95&

 

Открываем контекстное меню у третьего коммита и выбираем Reset "master" to this

h9rPp9pGRwQ.jpg?size=710x642&quality=95&

 

Выбираем Hard вариант и нажимаем ОК

jmuyZhBn7gg.jpg?size=525x371&quality=95&

 

Процесс успешно завершился, нажимаем Close

QO67WSBy4fs.jpg?size=581x386&quality=95&

 

В логе произошло вот такое

-9QWEqZ3ixw.jpg?size=701x462&quality=95&

 

Делаем git push и в настройках ставим чекбокс known changes

gnhuNCmnVl8.jpg?size=546x551&quality=95&

 

Идем на GitHub и проверяем результат

4XjQu5oLepU.jpg?size=1239x767&quality=95

 

 

 

Удаление отдельного коммита(не рекомендуемый вариант)

К примеру мы хотим удалить второй коммит, открываем Show log и в контекстном меню первого коммита выбираем Rebase "master" onto this

6vcnYEe_ap8.jpg?size=691x604&quality=95&

 

Ставим чекбокс Force Rebase, в контекстном меню второго коммита выставляем Skip и нажимаем Start Rebase

iBHkjHjk3co.jpg?size=732x476&quality=95&

 

Нажимаем Done

HUBFogPNED8.jpg?size=732x476&quality=95&

 

В логе видим вот такое

Vt-W-SgiE3w.jpg?size=681x530&quality=95&

 

Делаем git push и в настройках ставим чекбокс known changes

gnhuNCmnVl8.jpg?size=546x551&quality=95&

 

Идем на GitHub и проверяем результат

mPkvE6uYsYo.jpg?size=1239x773&quality=95

 

 

 

Опубликовано
Rebase

Удаляется содержимое коммита, или там оно сливается?

 

Вас этот гайд устраивает

мне по барабану

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

Опубликовано

Удаляется содержимое коммита

Удаляется, конфликты гарантированны если последующие коммиты правят тоже самое место, но в процессе Rebase их можно устранить. Возможно есть другие способы удалять отдельные коммиты, но я не знаток.

 

В твоем случае скорей всего надо чтото вот такое использовать

 

 

n6BVTViZsoM.jpg?size=914x474&quality=95&

 

Опубликовано

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

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

 

Сделать это просто - добавляешь конфиг .gitmodules в корень и туда добавляешь ссылку на другую репу. 
 

https://github.com/nadult/FreeFT/blob/main/.gitmodules

 

"path" - это папка в твоем репозитории, в которую он добавится при скачке, "url" - ссылка на репозиторий для сабмодуля.

По умолчанию после клонирования репозитория папки с сабмодулями будут пустыми - их надо "дозакачивать" отдельными коммандами - 
"git submodule init"

"git submodule update"

 

Также можно сделать клонирование с флагом "--recurse-submodules". В этом случае все сабмодули закачаются сразу, включая сабмодули сабмодулей, если такие будут.

"git clone --recurse-submodules https://github.com/myRepo/bla_bla_bla"

 

 

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

 

P.s. - Если у тебя нет ничего общего для всех твоих проектов - не заморачивайся, если можно что-то вынести - лучше сделать

Опубликовано

Общее есть.

И приходилось для двух зависимых проектов делать свои комитты.

Хотелось бы одним.

С Субмодулем это возможно? Ато из твоего описания ничего не понятно, или нужно видео пояснения для особо тупых. :-)

Опубликовано

Да можно. Есть 2 варианта. Возьмем для примера такую ситуацию - у тебя 2 проекта (основные репозитории) и 3-й проект как сабмодуль у них (репозиторий с общим кодом\файлами).

 

Вариант 1 - коммит в репозиторий сабмодуля. После этого в проектах основных надо делать git submodule update, чтобы изменения сабмодуля подтянулись.

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

 

Если в проектах не ракетостроение, то я бы рекомендовал остановиться на 1-м варианте. Если надо действительно работать с сабмодулем в основном проекте - могу расписать, как это сделать

Опубликовано

Про сабмодули ничего рассказать не могу, много видел но никогда не вдавался в детали и воспринимал их как симлинки. @Farvel, вроде доходчиво все объяснил. Вообще знакомство с такими штуками надо начинать с симлинков, хардлинков, рефлинков

Опубликовано

Руссо-туристо или импортозамещение, пора потихоньку выпиливаться от сраного дяди била)

https://gitflic.ru/

пока сыро-сыро, и не понятно не загнулось ли там развитие (отключили публичные репы).

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...